Iteraties#

In de volgende opgaven ga je herhalingen schrijven met behulp van for- en while-lussen, list comprehension en recursie.

Opgave 1#

Gegeven is de volgende recursieve oplossing voor het tellen hoe vaak het getal 42 in een lijst L voorkomt

def count_42(L):
    if len(L) == 0:
        return 0

    if L[0] == 42:
        return 1 + count_42(L[1:])
    else:
        return count_42(L[1:])

assert count_42([0, 42, 1, 42, 3]) == 2

Maak de volgende code af om het aantal keer 42 in een lijst met een for-lus te tellen

def count_42(L):
    total = 0

    L = [0, 42, 1, 42, 3]

    for ... in ...:
        ...

    return total

assert count_42([0, 42, 1, 42, 3]) == 2

Maak de volgende code af om het aantal keer 42 in een lijst met een while-lus te tellen

def count_42(L):
    total = 0

    while ...:
        ...

    return total

Maak de volgende code af om het aantal keer 42 in een lijst met een list comprehension te tellen

def count_42(L):
    M = [... for ... in ... if ...]

    total = sum(M)

    return total

assert count_42([0, 42, 1, 42, 3]) == 2

Opgave 2#

a. Schrijf een programma dat een for-lus gebruikt om de getallen 1 tot en met 10 te printen. Je hoeft hier alleen maar de lus te schrijven, een functie is niet nodig.

b. Schrijf een programma dat een while-lus gebruikt om de getallen 1 tot en met 10 te printen. Ook hier hoef je geen functie te schrijven.

c. Schrijf een programma dat recursief de getallen 1 tot en met 10 print.

Opgave 3#

Schrijf een programma dat met een while-lus een voor een de even getallen tussen 20 en 40 print.

Tip: gebruik een variabele om het getal bij te houden, in de lus verminder je elke keer dit getal met 1 zolang het nog niet gelijk is aan 20.

Opgave 4#

Gegeven de volgende twee lijsten

L = ["Mi", "na", "i", "Marj"]
M = ["jn", "am", "s", "olein"]

Maak met een list comprehension een nieuwe list K die paarsgewijs de elementen uit L en M samenvoegt, dus L[0] met M[0], L[1] met M[1] enzovoort.

Opgave 5#

Gegeven de volgende lijst, maak met behulp van list comprehension een nieuwe lijst aan waar de lege waarden zijn verwijderd

L = ["Tom", "", "Marie", "Isis", "", "Klaas"]