Antwoorden — Hoofdstuk 4: Lussen en iteraties
Opmerking: Code is in het Engels, met korte Nederlandse toelichting erboven of eronder.
Antwoord 1 — Tellen met range
range(1, 11)geeft 1..10 (stop is exclusief). We bouwen één regel metend=" ".
for i in range(1, 11):
print(i, end=" ")
print() # newline
Antwoord 2 — Som 1..n (accumulatie)
n = int(input("n: "))
total = 0
for i in range(1, n + 1):
total += i
print(total)
Antwoord 3 — While-teller omlaag
n = 5
while n >= 1:
print(n)
n -= 1
print("Liftoff!")
Antwoord 4 — Alleen even getallen (continue)
n = 0
while n < 20:
n += 1
if n % 2 != 0:
continue
print(n)
Antwoord 5 — Eerste veelvoud vinden (for-else)
- Bij
breakslaan we hetelse-deel over; zonderbreakdraaitelse.
for i in range(1, 51):
if i % 7 == 0 and i % 5 == 0:
print("Found:", i)
break
else:
print("No match")
Antwoord 6 — Genummerde lijst (enumerate)
names = ["Ava", "Bo", "Cid", "Dia"]
for idx, name in enumerate(names, start=1):
print(f"{idx}. {name}")
Antwoord 7 — Itereren over dict
user = {"name": "Liam", "age": 31, "city": "Rotterdam"}
for key, value in user.items():
print(f"{key}: {value}")
Antwoord 8 — Tafel van vermenigvuldiging (genest)
for a in range(1, 11):
for b in range(1, 11):
print(f"{a*b:>4}", end="")
print()
Antwoord 9 — Invoer tot leeg (sentinel)
count = 0
while True:
line = input().strip()
if line == "":
break
count += 1
print(f"Count: {count}")
Antwoord 10 — Filter en transformeer
nums = [3, 8, 1, 7, 2, 10, 5]
# filter evens
evens: list[int] = []
for x in nums:
if x % 2 == 0:
evens.append(x)
# transform squares
squares: list[int] = []
for x in nums:
squares.append(x * x)
print(evens)
print(squares)
Uitdaging (optioneel) — FizzBuzz 1..100
for i in range(1, 101):
if i % 15 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)