<jupyter_start><jupyter_text>KEUZESTRUCTUUR      In deze notebook maak je kennis met de voorwaardelijke keuze.             1. Keuzestructuur       Voorbeeld 1.1 Voer de volgende code uit.<jupyter_code># keuzestructuur

getal = float(input("Geef een getal: "))     # na input() steeds aangezien als string, dus typecasting gebruiken

if getal > 0: 
    print(getal, "is strikt positief.")
elif getal < 0:    
    print(getal, "is strikt negatief.")
else:
    print(getal, "is nul.")<jupyter_output>Geef een getal: 0
0.0 is nul.<jupyter_text>De combinatie sleutelwoorden if - elif - else staat voor als - anders als - anders.  Oefening 1.1Schrijf een script dat een woord vraagt aan de gebruiker, en erna weergeeft of het woord exact 8 letters bevat, of meer of minder dan 8.<jupyter_code># voorbeeldscript
woord = input("Geef een woord: ")     # na input() steeds aangezien als string, dus typecasting gebruiken

if len(woord) > 8: 
    print(woord, "heeft meer dan 8 letters.")
elif len(woord) < 8:    
    print(woord, "heeft minder dan 8 letters.")
else:
    print(woord, "heeft 8 letters.")<jupyter_output>Geef een woord: boterhammetje
boterhammetje heeft meer dan 8 letters.<jupyter_text>Oefening 1.2Schrijf een script dat de richtingscoëfficiënt van twee rechten (in het vlak) vraagt aan de gebruiker, en erna weergeeft of de rechten evenwijdig zijn of snijden.<jupyter_code># voorbeeldscript
rico1 = float(input("Geef de rico van twee rechten in. Eerste rico: "))     # na input() steeds aangezien als string, dus typecasting gebruiken
rico2 = float(input("Tweede rico: "))     # na input() steeds aangezien als string, dus typecasting gebruiken

if rico1 == rico2: 
    print("De rechten zijn evenwijdig.")
else:
    print("De rechten snijden.")<jupyter_output>Geef de rico van twee rechten in. Eerste rico: -2
Tweede rico: 7
De rechten snijden.<jupyter_text>Oefening 1.3Schrijf een script dat de richtingscoëfficiënt van een rechte vraagt aan de gebruiker, en erna weergeeft of de rechte stijgt, daalt of evenwijdig is met de x-as.<jupyter_code># voorbeeldscript
rico = float(input("Geef de rico van een rechte in: "))   # na input() steeds aangezien als string, dus typecasting gebruiken

if rico > 0: 
    print("De rechte stijgt.")
elif rico < 0:    
    print("De rechte daalt.")
else:
    print("De rechte is evenwijdig met de x-as.")<jupyter_output>Geef de rico van een rechte in: -3
De rechte daalt.<jupyter_text>2. Geneste structuur      Als structuren in elkaar verweven zijn, dan spreekt men van geneste structuren.  Voorbeeld 2.1Voer de volgende code uit.<jupyter_code># geneste structuur: herhalings- en keuzestructuur

getallen = [3, 7, 1, 13, 2, 4, 5, 11, 15] 

for getal in getallen:
    if getal % 2 == 0:
        print("Het getal", getal, "is even.")
    else: 
        print("Het getal", getal, "is oneven.")<jupyter_output>Het getal 3 is oneven.
Het getal 7 is oneven.
Het getal 1 is oneven.
Het getal 13 is oneven.
Het getal 2 is even.
Het getal 4 is even.
Het getal 5 is oneven.
Het getal 11 is oneven.
Het getal 15 is oneven.<jupyter_text>Oefening 2.1Breid de code uit, zodat een lijst met de even en een lijst met de oneven getallen worden getoond.<jupyter_code># voorbeeldscript
getallen = [3, 7, 1, 13, 2, 4, 5, 11, 15]
even = []
oneven = []

for getal in getallen:
    if getal % 2 == 0:
        print("Het getal", getal, "is even.")
        even.append(getal)
    else:
        print("Het getal", getal, "is oneven.")
        oneven.append(getal)
        
print(even)
print(oneven)<jupyter_output>Het getal 3 is oneven.
Het getal 7 is oneven.
Het getal 1 is oneven.
Het getal 13 is oneven.
Het getal 2 is even.
Het getal 4 is even.
Het getal 5 is oneven.
Het getal 11 is oneven.
Het getal 15 is oneven.
[2, 4]
[3, 7, 1, 13, 5, 11, 15]<jupyter_text>Voorbeeld 2.2Voer de volgende code uit.<jupyter_code># geneste structuur

wiskundigen = ["Fermat", "Gauss", "Euler", "Fibonacci", "Galois", "Noether", "Nightingale", "Lovelace"]
aantal_vrouwen = 0 

for persoon in wiskundigen: 
    geslacht = "vrouwelijk"
    if persoon[0] in ["N", "L"]:
        aantal_vrouwen += 1
    else:
        geslacht = "mannelijk"    
    print(persoon, "is van het geslacht:", geslacht)
    
print("Er zijn", aantal_vrouwen, "vrouwelijke wiskundigen in de lijst.")<jupyter_output>Fermat is van het geslacht: mannelijk
Gauss is van het geslacht: mannelijk
Euler is van het geslacht: mannelijk
Fibonacci is van het geslacht: mannelijk
Galois is van het geslacht: mannelijk
Noether is van het geslacht: vrouwelijk
Nightingale is van het geslacht: vrouwelijk
Lovelace is van het geslacht: vrouwelijk
Er zijn 3 vrouwelijke wiskundigen in de lijst.<jupyter_text>Oefening 2.2Breid de code uit, zodat ook het aantal mannelijke wiskundigen wordt weergegeven, zonder ze expliciet te tellen.<jupyter_code># voorbeeldscript
wiskundigen = ["Fermat", "Gauss", "Euler", "Fibonacci", "Galois", "Noether", "Nightingale", "Lovelace"]
aantal_vrouwen = 0

for persoon in wiskundigen:
    geslacht = "vrouwelijk"
    if persoon[0] in ["N", "L"]:
        aantal_vrouwen += 1
    else:
        geslacht = "mannelijk"
    print(persoon, "is van het geslacht:", geslacht)
    
aantal_mannen = len(wiskundigen) - aantal_vrouwen

print("Er zijn", aantal_vrouwen, "vrouwelijke wiskundigen in de lijst.")
print(aantal_mannen)<jupyter_output>Fermat is van het geslacht: mannelijk
Gauss is van het geslacht: mannelijk
Euler is van het geslacht: mannelijk
Fibonacci is van het geslacht: mannelijk
Galois is van het geslacht: mannelijk
Noether is van het geslacht: vrouwelijk
Nightingale is van het geslacht: vrouwelijk
Lovelace is van het geslacht: vrouwelijk
Er zijn 3 vrouwelijke wiskundigen in de lijst.
5<jupyter_text>Uitdaging 2.1Schrijf een script dat 12 veelvouden van 3 afdrukt. Het script moet daarvoor starten met de gegeven lijst en moet deze lijst 'opkuisen' en aanvullen.<jupyter_code>lijst = [1, 3, 6, 7, 8, 9]<jupyter_output><empty_output><jupyter_text>Werkwijze: Als Python bij een for-lus een lijst doorloopt, dan zal Python gebruikmaken van de index van een element in die lijst.Als je een element verwijdert, dan krijgen de elementen in de lijst een nieuwe index. Dus het element volgend op het verwijderde element krijgt de reeds gebruikte index. In de for-lus wordt de variabele (de iterator) echter vermeerderd, zodat dat volgende element wordt overgeslagen. Wat je moet doen om dit te vermijden, is de te verwijderen elementen eerst opslaan in een nieuwe lijst, en erna een voor een alle elementen uit die lijst verwijderen.Je kan in je script ook extra printopdrachten toevoegen zodat je ziet wat er gebeurt. Eventueel kun je die achteraf weer 'verwijderen' door er een  voor te plaatsen.<jupyter_code># voorbeeldscript
lijst = [1, 3, 6, 7, 8, 9]

# opkuisen; na opkuis is het eerste element in de lijst 1*3
verwijderen = []
for getal in lijst:
    print("getal =", getal)
    if getal % 3 != 0:
        verwijderen.append(getal)
        print(getal, "wordt verwijderd.")
print(verwijderen)
for getal in verwijderen:
    lijst.remove(getal)

# aantal elementen in lijst nagaan
aantal = len(lijst)
print("aantal veelvouden =", aantal)

# aanvullen tot er 12 elementen in lijst zijn
for i in range(aantal+1, 13):
    # print("i =", i)
    veelvoud = 3 * i
    lijst.append(veelvoud)
print(lijst)<jupyter_output>getal = 1
1 wordt verwijderd.
getal = 3
getal = 6
getal = 7
7 wordt verwijderd.
getal = 8
8 wordt verwijderd.
getal = 9
[1, 7, 8]
aantal veelvouden = 3
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36]<jupyter_text>Uitdaging 2.2Vervolledig en verbeter de code, zodat:-  elk veelvoud van 3 uit de lijst getallen wordt verwijderd, tenzij het ook een veelvoud is van 5; -  elk veelvoud van 7 uit de lijst getallen wordt verwijderd, tenzij het ook een veelvoud is van 2. Maak een tweede lijst die de overgebleven getallen, elk vermenigvuldigd met 10, bevat.Laat uiteindelijk beide lijsten uitprinten. Tip: ga eerst op zoek naar de syntaxfouten, en pas daarna vervolledig je de code tot hij doet wat hij hoort te doen.<jupyter_code>getallen = [3, 7, 1, 25, 10, 8, 30, 40, 28, 49, 33, 13, 37, 101, 56, 111, 2, 4, 5, 11, 15] 
lijst2 = []

for getal in getallen:
    print(getal)
    if getal % 3 == 0:
        if getal % 5 != 0
            getallen.remove(getal)
        else:
            lijst2.append(getal * 10)
    elif getal % == 0:
        if getal % != 0:
            getallen.remove(getal)
        else
            lijst2.append(getal * 10)
    else:
        lijst2.append(getal * 10)
    
print getallen
# voorbeeldscript

# syntax
getallen = [3, 7, 1, 25, 10, 8, 30, 40, 28, 49, 33, 13, 37, 101, 56, 111, 2, 4, 5, 11, 15]
lijst2 = []

for getal in getallen:
    print("getal =", getal)
    if getal % 3 == 0:
        if getal % 5 != 0:
            getallen.remove(getal)
        else:
            lijst2.append(getal * 10)
    elif getal % 7 == 0:
        if getal % 2 != 0:
            getallen.remove(getal)
        else:
            lijst2.append(getal * 10)
    else:
        lijst2.append(getal * 10)
        
print (getallen)
# voorbeeldscript

# code vervolledigen
getallen = [3, 7, 1, 25, 10, 8, 30, 40, 28, 49, 33, 13, 37, 101, 56, 111, 2, 4, 5, 11, 15]
lijst2 = []
verwijderen = []

for getal in getallen:
    print("getal =", getal)
    if getal % 3 == 0:
        if getal % 5 != 0:
            verwijderen.append(getal)
            print(getal, "wordt verwijderd.")
        else:
            lijst2.append(getal * 10)
            print(getal, "wordt niet verwijderd.")
    elif getal % 7 == 0:
        if getal % 2 != 0:
            verwijderen.append(getal)
            print(getal, "wordt verwijderd.")
        else:
            lijst2.append(getal * 10)
            print(getal, "wordt niet verwijderd.")
    else:
        lijst2.append(getal * 10)
        print(getal, "wordt niet verwijderd.")
        
# verwijderen
for getal in verwijderen:
    getallen.remove(getal)
    
print(getallen)
print(lijst2)<jupyter_output>getal = 3
3 wordt verwijderd.
getal = 7
7 wordt verwijderd.
getal = 1
1 wordt niet verwijderd.
getal = 25
25 wordt niet verwijderd.
getal = 10
10 wordt niet verwijderd.
getal = 8
8 wordt niet verwijderd.
getal = 30
30 wordt niet verwijderd.
getal = 40
40 wordt niet verwijderd.
getal = 28
28 wordt niet verwijderd.
getal = 49
49 wordt verwijderd.
getal = 33
33 wordt verwijderd.
getal = 13
13 wordt niet verwijderd.
getal = 37
37 wordt niet verwijderd.
getal = 101
101 wordt niet verwijderd.
getal = 56
56 wordt niet verwijderd.
getal = 111
111 wordt verwijderd.
getal = 2
2 wordt niet verwijderd.
getal = 4
4 wordt niet verwijderd.
getal = 5
5 wordt niet verwijderd.
getal = 11
11 wordt niet verwijderd.
getal = 15
15 wordt niet verwijderd.
[1, 25, 10, 8, 30, 40, 28, 13, 37, 101, 56, 2, 4, 5, 11, 15]
[10, 250, 100, 80, 300, 400, 280, 130, 370, 1010, 560, 20, 40, 50, 110, 150]
{'fraction_non_alphanumeric': 0.09356239032049506, 'fraction_numerical': 0.04544195067885841, 'mean_word_length': 3.4395243952439523, 'pattern_counts': {'":': 0, '<': 38, '<?xml version=': 0, '>': 38, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '647009', 'license': 'CC0-1.0', 'n_tokens_mistral': 4590, 'n_tokens_neox': 4255, 'n_words': 1423, 'path': 'Programmeerelementen/Structuren/0300_Keuzestructuur.ipynb', 'repo_name': 'dwengovzw/PythonNotebooks', 'size': '10827'}