In heel wat programma’s wordt getest of een string een bepaald teken bevat of worden strings overlopen op zoek naar bv. patronen.

Als je bijvoorbeeld een DNA-streng AUAUCTTGCTGUA hebt dan wil je misschien testen of de nucleotide G voorkomt. Maar misschien ben je opzoek naar stukjes DNA die op slechts 1 plaats afwijken van de sequentie AUCCTG en moet je de DNA-streng verwerken.

In-operator

Wil je testen of een string een bepaald teken of een sequentie van tekens bevat, dan kan je de in-operator gebruiken.

Foreach-lus

Wil je elke letter overlopen in een string, dan gebruik je de foreach-lus:

woord = input("Geef woord: ")

for letter in woord:
    print(letter)

Geef je als invoer "car" dan toont dit programma de volgende uitvoer:

c
a
r

Wanneer gebruik je een foreach-lus?

Je overloopt een string met de foreach-lus als je alle tekens wil overlopen maar de index niet nodig hebt om berekeningen te doen in de lus.

For-lus

Een string overlopen kan ook met de for-lus. In dat geval benader je elke letter met de index. Een voorbeeld:

woord = input("Geef woord: ")

for i in range(len(woord)):
    print(f"{i}: {woord[i]}")

Geef je als invoer "car" dan toont dit programma de volgende uitvoer:

0: c
1: a
2: r

Wanneer gebruik je een for-lus?

Je overloopt een string met de for-lus als je alle tekens wil overlopen en de index van elke teken nodig hebt om berekeningen te doen in de lus.

Let dus op, de lus-controle variabele i wordt maximaal gelijk aan 1 minder dan de lengte van de string.

While-lus

Wanneer gebruik je een while-lus?

Je overloopt een string met de while-lus als je iets (een teken, meerdere tekens…) wil zoeken tot je het gevonden hebt. In dit geval werk je ook met de index van elk teken.

Een voorbeeld waarbij gezocht wordt naar de index van het eerste apenstaartje in een woord (*).

woord = input('Geef woord: ')
i = 0

while woord[i] != "@" and i < len(woord):
    i += 1

if i < len(woord):
    print(f"@ gevonden op index {i}")
else:
    print("Geen @ gevonden")

Let dus op:


(*) Het voorbeeld kan je ook programmeren met de methode find().