Ga naar hoofdinhoud

Aanpassen — pas het algoritme aan

Leerdoel: je past het algoritme aan voor een nieuwe vraag. Een klein verschil in de eis leidt vaak tot een klein, gericht verschil in de code.

Opdracht

Pas zoek aan zodat de functie telt hoe vaak doel in de lijst voorkomt, in plaats van de index van de eerste te returnen.

  • De nieuwe functie heet tel.
  • Hij geeft een geheel getal terug, nul of meer.
  • Komt het doel niet voor, dan is het antwoord 0.

Voorbeeld: tel([3, 1, 4, 1, 5], 1) moet 2 returnen.

Python
Code-omgeving wordt voorbereid…
Tip

Return niet zodra je een match vindt, want dan kun je niet verder tellen. Houd een teller bij die je bij elke match ophoogt, en geef die pas na de lus terug.

Welke bouwsteen verandert er? Welke blijft hetzelfde?

Antwoord
def tel(lijst, doel):
teller = 0
for waarde in lijst:
if waarde == doel:
teller = teller + 1
return teller

Wat is hetzelfde gebleven?

  • Bouwsteen 1: door de lijst lopen.
  • Bouwsteen 2: vergelijken met het doel.

Wat is veranderd?

  • Bouwsteen 3: in plaats van bij match meteen return, doen we teller += 1 en doorgaan.
  • Bouwsteen 4: in plaats van -1, returnen we de teller (die is 0 als er niets is gevonden — dat past al bij de eis).

Kortere variant met +=:

def tel(lijst, doel):
teller = 0
for waarde in lijst:
if waarde == doel:
teller += 1
return teller

Door naar bouw zelf.