Bouwsteen 1 — items in Python
Hier bouw je op verder
- Python Lijsten
- Python De for-loop
- Python Functies
- Python F-strings
- Python Tuples
Leerdoel: je slaat de items op als een lijst van
(waarde, gewicht) tuples, en kunt erin "kijken".
Wat we willen
De items uit het idee, die de rest van dit hoofdstuk gebruikt:
| Item | Waarde | Gewicht |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 6 | 2 |
| 3 | 18 | 5 |
| 4 | 22 | 6 |
| 5 | 28 | 7 |
In Python: een lijst van tuples, waarbij elke tuple (waarde, gewicht)
is.
items = [(1, 1), (6, 2), (18, 5), (22, 6), (28, 7)]
Elk element is een tuple (waarde, gewicht) voor één item.
Indexen
items[0] = (1, 1) — de eerste tuple.
items[2] = (18, 5) — de derde tuple (item 3 uit de tabel).
Python begint te tellen bij 0. De tabel hierboven telt vanaf 1 ("item 1, item 2, …"), de code vanaf 0. Dat is wennen, maar zo doet al je andere Python-code het ook.
Tuple uitpakken
Met tuple-unpacking pak je waarde en gewicht in één regel:
waarde, gewicht = items[2]
print(waarde, gewicht) # 18 5
Of zonder unpacking:
print(items[2][0]) # 18 (waarde)
print(items[2][1]) # 5 (gewicht)
Beide werken; unpacking leest beter.
Voorspel
Wat denk je dat dit print?
items = [(1, 1), (6, 2), (18, 5), (22, 6), (28, 7)]
n = len(items)
for i in range(n):
waarde, gewicht = items[i]
print(f"item {i + 1}: waarde={waarde}, gewicht={gewicht}")
Antwoord
item 1: waarde=1, gewicht=1
item 2: waarde=6, gewicht=2
item 3: waarde=18, gewicht=5
item 4: waarde=22, gewicht=6
item 5: waarde=28, gewicht=7
We tellen vanaf i + 1 om de tabel-nummering te matchen, maar
gebruiken items[i] om de echte Python-index op te halen.
Bouw zelf en test
Maak een functie item_info(items, i) die de string
"item N: waarde=V, gewicht=G" returnt voor item op Python-index i.
Tip
Twee regels werk: eerst tuple-unpacking op items[i], dan een f-string
teruggeven. In een f-string (f"...") zet je een variabele in de tekst
met {...}, en {i + 1} mag daar ook.
Antwoord
def item_info(items, i):
waarde, gewicht = items[i]
return f"item {i + 1}: waarde={waarde}, gewicht={gewicht}"
Wat nu nog mist
De items staan er. Nu nog een tabel om de waardes per (i, w) in op te
slaan; die maak je op de volgende pagina leeg aan.
Door naar lege tabel →.