In deze oefening werken we met twee lijsten:
Dit is een lijst met strings. De lijst bevat namen die alfabetisch gesorteerd zijn. Je mag ervan uitgaan dat elke naam slechts één keer voorkomt.
Voorbeeld: studenten = ['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim']
Dit is een lijst met gehele getallen tussen 0 en 20. Deze lijst bevat evenveel elementen als de lijst studenten. Elk cijfer hoort bij de student op dezelfde positie in de lijst studenten.
Voorbeeld: punten = [10, 12, 8, 12, 19, 5]
cijfer
Schrijf een functie cijfer met drie argumenten: i) een lijst met studenten, ii) een lijst met punten en iii) een naam van een student.
De functie gaat na of de opgegeven student voorkomt in de lijst met studenten. Indien niet, retourneert de functie het getal -1, indien wel, retourneert de functie het overeenkomstig cijfer uit de lijst met punten.
cijfer_aanpassen
Schrijf een functie cijfer_aanpassen met vier argumenten: i) een lijst met studenten, ii) een lijst met punten, iii) een naam van een student en iv) een cijfer.
De functie past het cijfer aan voor de desbetreffende student en retourneert een aangepaste lijst met punten. Als de student niet voorkomt in de lijst met studenten, dan wordt er niets aangepast en wordt de oorspronkelijke lijst geretourneerd.
persoon_toevoegen
Schrijf een functie persoon_toevoegen met twee argumenten: i) een lijst met studenten en ii) de naam van een student om toe te voegen.
De functie retourneert een lijst waarin de student toegevoegd wordt op de juiste positie (alfabetisch). Als de student al voorkwam in de lijst, dan wordt deze niet meer toegevoegd en retourneert de functie dus de oorspronkelijke lijst.
afwijking
Schrijf een functie afwijking met één argument: een lijst met punten.
De functie retourneert een lijst waarin elk cijfer vervangen is door de afwijking tot het gemiddelde van de cijfers in de lijst. De afwijking is positief als de student boven het gemiddelde scoort, negatief indien onder het gemiddelde. De afwijking is een floating point getal dat niet afgerond wordt.
>>> cijfer(['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'], [10, 12, 8, 12, 19, 5], 'olga') 12 >>> cijfer(['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'], [10, 12, 8, 12, 19, 5], 'els') -1 >>> cijfer_aanpassen(['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'], [10, 12, 8, 12, 19, 5], 'olga', 0) [10, 12, 8, 0, 19, 5] >>> persoon_toevoegen(['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'], 'els') ['els', 'jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'] >>> afwijking([10, 12, 8, 12, 19, 5]) [-1.0, 1.0, -3.0, 1.0, 8.0, -6.0]