Ik ben sinds kort weer mijn Python wat aan het opfrissen aan de hand van Pieter Sproncks "De programmeursleerling". In één van de opgaven (8.2) moet je een programma schrijven dat twee strings vergelijkt en het aantal overeenkomende tekens teruggeeft. Er zijn uitwerkingen van de opgaven, maar ik wil graag begrijpen wat er in mijn poging misgaat. Bij strings van gelijke lengte werkt de methode, maar bij strings van ongelijke lengte (zoals "een" en "twee") print de code dikwijls "0 tekens gemeen"; blijkbaar doet mijn for-lus (for i in range(lengte)) op regel 10 het niet goed, en mijn vraag is waarom. Zie hier onder de code.
def gemeen(string1,string2):
aantal = 0
if len(string1) < len(string2):
lengte = len(string1)
else:
lengte = len(string2)
for i in range(lengte):
if string1 == string2:
aantal += 1
return aantal
string1 = str(input("Geef woord 1: "))
string2 = str(input("Geef woord 2: "))
num = gemeen(string1, string2)
if num == 0:
print("Niks gemeen")
elif num == 1:
print("Eén teken gemeen")
else:
print(num, "tekens gemeen")
Alle input is welkom