Een property list is een lijst die bestaat uit de opeenvolging van telkens de naam van een property (eigenschap) en de waarde: ['property_name_1', value1, 'property_name_2', value2,...]. Een property list heeft bijgevolg altijd een even aantal elementen. De naam van de property moet een string zijn, de waarde kan om het even wat zijn. Een property kan nooit meer dan één keer voorkomen in de lijst.

Voorbeelden van property lists

['naam', 'Els', 'vak', 'Programmeren', 'punten', 18]

['naam', 'Len', 'vak', 'Programmeren', 'punten', 12]

Opgave

Schrijf een functie get_value die twee argumenten heeft: een property list (zoals hierboven gedefineerd) en de naam van een property.

Deze functie gaat na of de property met de opgegeven naam voorkomt in de lijst. Indien wel, dan wordt de overeenkomstige waarde geretourneerd. Indien niet, retourneert de functie de string 'property not in use'.

Je mag ervan uitgaan dat de opgegeven lijst in de juiste vorm is.

Voorbeelden

>>> get_value(['naam', 'Els', 'vak', 'Programmeren', 'punten', 20], 'punten')
20

>>> get_value(['naam', 'Els', 'vak', 'Programmeren', 'punten', 6], 'Programmeren')
'property not in use'

Spelregels

We simuleren in deze oefening de programmeertaal LISP in Python. Het is niet de bedoeling dat je de eigenschappen en methoden van Python list objecten gebruikt, noch is het toegelaten om via for, while of list comprehensions een lijst te doorlopen.

Niet toegelaten

  • Het gebruik van for of while.
  • List indexing of slicing (bracket operator []).
  • De operator in om na te gaan of een element voorkomt in een lijst.
  • De functies len, min, max, sum en sorted.
  • List methoden in python zoals append, count, index, reverse, insert, remove, sort, pop, ....
  • Vergelijkingsoperatoren toegepast op python lists.
  • List comprehensions.

Wel toegelaten

  • De functies car, cdr, cons en nill zoals gedefinieerd in de cursus.
  • Vergelijkingsoperatoren tussen getallen en strings.
  • Bewerkingen met getallen.

Opmerking

  • De functies car, cdr, cons en nill zijn geen standaard Python. Je kan ze hier gebruiken omdat de definitie ervan door de Dodona judge automatisch toegevoegd wordt bij het evalueren van de oefening.
  • Als je de functies car, cdr, cons en nill in PyCharm wilt gebruiken, dan moet je deze toevoegen aan je code of importeren.

Videohandleiding

In de videotutorial van deze oefening op Ufora zie je hoe je de recursieoefeningen in PyCharm kan oplossen.