Voorbeeld verder uitgewerkt.
Don’t squat with your spurs on.
Je bent een uitbater van een western cafe en hebt een elektrische stier waarop rodeo wordt gereden. Je dient in deze oefening functies te maken die de score helpen bij te houden.
In elke functie komen dezelfde argumenten voor. Dit zijn names_list, een lijst met de namen van alle personen die rodeo gereden hebben (e.g. ["John", "Bill", "Sam", "Tom", "Buck"]
) en scores_list, een lijst met de scores (e.g. [10, 20, 30, 40, 50]
). De scores corresponderen met de persoon opdezelfde positie (e.g. Bill heeft een score van 20).
In elke functie moet je steeds eerst controleren of de names_list even lang is als de scores_list. Indien dit niet het geval is return je “Error 01”.
Schrijf een functie change deze neemt naast de argumenten names_list en scores_list ook de argumenten name en score. De functie geeft de scores_list als return maar heeft de score van name aangepast naar zijn nieuwe score. Indien de name niet in de names_list zit geef je “Error 03” als return
Schrijf een functie add_player deze neemt dezelfde argumenten als de functie change. De functie controleert ook of de naam al in names_list zit. Indien dit het geval is, return je “Error 02”. Indien dit niet het geval is dan voeg je de speler toe. Is er geen score argument gegeven dan geef je een score van 0. Als return wensen we een lijst met eerste element de aangepaste names_list en als tweede element de aangepaste scores_list.
Schrijf een functie top deze neemt naast de argumenten names_list en scores_list ook het argument n. Als return wensen we een lijst met alle namen die een score hoger dan of gelijk aan n hebben.
>>> nl = ["John", "Bill", "Sam", "Tom", "Buck"]
>>> sl = [10, 20, 30, 40, 50]
>>> sl = change(nl, sl, "John", 100)
>>> sl
[100, 20, 30, 40, 50]
>>> nl, sl = add_player(nl, sl, "Colt", 40)
>>> print(top(nl, sl, 35))
['John', 'Tom', 'Buck', 'Colt']