Terug naar de theorie en opgaven over Geneste Lijsten
Terug naar de Afsluitende Opgaven over Geneste Lijsten
Terug naar de cursus pagina
Python Cursus. Hoofdstuk 12c - Geneste Lijsten
Uitwerkingen Opgaven
Opgave 12e.1 Oefenen met lijsten
#DEEL A cijferLijst = [3.4, 8.0, 6.9, 7.0, 8.2] #vervang 3.4 met 5.5 cijferLijst[0] = 5.5 print(cijferLijst) #DEEL B: woord = ["k", "a", "_"] #vervang _ met t woord [2] = "t" print(woord) #DEEL C: laatste = cijferLijst[ len(cijferLijst)-1 ] #pas de fout hier aan print(laatste)
Opgave 12e.2 Oefenen met for-loop
for teller in range(1, 4): print("^"*teller)
Opgave 12e.3 Boter-Kaas-Eieren winnen
bord = [ ["X", "O", "-"], ["X", "O", "O"], ["-", "X", "-"] ] bord[2][0]="X" # - in een X veranderen print( bord[0][0], bord[0][1], bord[0][2] ) print( bord[1][0], bord[1][1], bord[1][2] ) print( bord[2][0], bord[2][1], bord[2][2] )
Opgave 12d.1 Piramides met dakjes
DEEL 1:aantal_dakjes = int (input("Hoeveel dakjes wil je?")) aantal_piramides = int (input("Hoeveel piramides wil je?")) for piramide_teller in range (aantal_piramides): for teller in range (1, aantal_dakjes+1): print("^" * teller) print()DEEL 2:
aantal_dakjes = int (input("Hoeveel dakjes wil je?")) for teller in range (1, aantal_dakjes+1): print("^" * teller)
Opgave 12d.2 Tulpenvelden
aantal_per_rij = int(input("Hoeveel tulpenbollen per rij?")) aantal_rijen = int(input("Hoeveel rijen met tulpenbollen per veld?")) for rijen_teller in range (aantal_rijen): for tulpen_teller in range (aantal_per_rij): print('T', end="") print()
Opgave 12.c1 Hockey competitie
teams = ["Amsterdam", "Den Bosch", "Bloemendaal", "Kampong", "Laren", "Nijmegen"] wedstrijd_teller = 0 for team1 in teams: for team2 in teams: if not (team1 == team2): print( team1, "-", team2) wedstrijd_teller += 1 print("Aantal wedstrijden:", wedstrijd_teller)
Opgave 12c.2 Alle tafels van vermenigvuldiging (met een for
)
#drukt alle tafels van 0 t/m 10 af for tafel in range(11): for teller in range (11): print (str(tafel) +" * " + str(teller) + " = " + str(tafel*teller), end=", ") print()
Opgave 12c.2 Cijferslot kraken
for cijfer1 in range (0,10): for cijfer2 in range (0,10): for cijfer3 in range (0,10): print(cijfer1,cijfer2,cijfer3)
Opgave 12c.3 Cadeaus uitdelen
#Drukt paren af van 0 tot en met 4, als beide getallen gelijk zijn #Bijvoorbeeld, de volgende paren worden wel afgedrukt: (0,0) (1,1) #Maar, de volgende paren worden niet afgedrukt: (0,1) (0,2) (0,3) (0,4) for persoon1 in range( 5 ): for persoon2 in range( 5 ): if not persoon1 == persoon2: print( "( persoon ", persoon1, ", persoon ", persoon2, ")" )
Opgave 12c.4 Maanden met een rrrrr (met een for
)
maandenLijst = ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"] for maand in maandenLijst: for letter in maand: if letter == "r": print( maand )
Opgave 12c.4.2 Smiley
plaatje = [ [" ","X", " ", "X", " "], [" ","X", " ", "X", " "], [" "," ", " ", " ", " "], [" ","X", "X", "X", " "], ["X"," ", " ", " ", "X"] ] #VOEG HIER CODE TOE OM Xjes OP COORDINATEN AAN TE PASSEN plaatje[3][0] = "X" plaatje[4][0] = " " #... enz. #DRUK PLAATJE AF for rij in range(5): for teken in range(5): print( plaatje[rij][teken], end="") print()
Opgave 12c.4.1 Bordopbouw: Boter-Kaas-Eieren
bord=[] # een leeg bord aanmaken #Rijen in het bord vullen bord = [ ['X', 'O', 'X'], ['O', 'X', '-'], ['O', 'O', 'X'] ] #Het bord afdrukken for rij in range(3): for zet in range (3): print(zet, end="") print()
Opgave 12.5.2 Geneste list - Coördinaten
def toon_bord( bord ): for rij in range( 3 ): #voor elk rij for kolom in range( 3 ): #en voor elk kolom print( bord[rij][kolom], end=" " ) #druk af wat op dat plek staat print() #print een lege regel bord = [ ["-", "-", "-"], ["-", "-", "-"], ["-", "-", "-"] ] #begin met een leeg bord bord [0][0] = "O" #zet linksboven een O bord [1][1] = "X" bord [0][1] = "O" bord [0][2] = "X" #speler 0 dwarsbomen door rechtsboven iets te plaatsen toon_bord( bord ) #print het bord
Uitwerkingen Afsluitende Opgaven
Afsluitende opgave 12.c1 Stok kaarten afdrukken
kleurLijst = ["Harten", "Schoppen", "Klaveren", "Ruiten"] waardeLijst = [2, 3, 4, 5, 6, 7, 8, 9, 10, "Boer", "Vrouw", "Heer", "Aas"] for kleur in kleurLijst: for waarde in waardeLijst: print(kleur,waarde)
Afsluitende opgave 12c.1b Feestinkopen (met for)
aantal_mogelijkheden = 0 for cola in range(1,11): for chips in range (1,11): for chocola in range (1,11): if(cola+chips+chocola==12): if(cola!=chips and chips!=chocola):#niet alle drie hetzelfde if (cola%2 == 0):#cola moet even zijn aantal_mogelijkheden+=1 print("cola",cola,"chips", chips, "chocola", chocola, "aantal mogelijkheden:", aantal_mogelijkheden)
Afsluitende opgave 12c.3 Alle mogelijkheden (met for)
kleurenLijst = ["Rood", "Blauw", "Groen", "Paars"] combinatieTeller = 0 for kleur1 in kleurenLijst: for kleur2 in kleurenLijst: for kleur3 in kleurenLijst: for kleur4 in kleurenLijst: print( kleur1, kleur2, kleur3, kleur4) combinatieTeller += 1 print("Aantal mogelijkheden:", combinatieTeller)
Afsluitende opgave 12.3 Spelbord Boter-Kaas-Eieren
bord = [ ["X","-","-"], ["-","O","-"], ["-","-","-"] ] #een X linksonderin plaatsen (rijnummer 2, kolomnummer 0) bord[2][0]= "X" #bord netjes afdrukken for rijnummer in range ( 3 ): # doorloop elke rij for kolomnummer in range ( 3 ): #doorloop elke kolom in elk rij print( bord[rijnummer][kolomnummer], end="" ) #met end="" niet naar volgende regel print() #naar een nieuwe regel
Afsluitende Opgave 12c.5 Mijnenveger
import random #FUNCTIEDEFINITIES def maakLeegBord(aantal_rijen, aantal_kolommen): bord = [] #maak eerst een leeg bord for i in range (aantal_rijen): rij = [] #maak een lege rij for y in range (aantal_kolommen): #vul die rij met het juist aantal kolommen rij.append("-") bord.append(rij) #plak rij aan bord #print("controle rij goed geprint: ", bord) return bord #BORD AFDRUKKEN def bordAfdrukken(bord): for rij in range (5): for kolom in range (10): print( bord[rij][kolom], end="") print() #WILLEKEURIG 20 BOMMEN TOEVOEGEN def vulBord(bord): for i in range (5): willekeurig_rij = random.randint(0,4) willekeurig_kolom = random.randint(0,9) #print (willekeurig_rij, willekeurig_kolom) bord[willekeurig_rij][willekeurig_kolom] = "X" return bord #HOOFDPROGRAMMA bord_leeg = maakLeegBord(5,10) #maak een leeg bord met 5 rijen en 10 kolommmen #bordAfdrukken(bord_leeg) #print bord ter controle af bord_gevuld = vulBord(bord_leeg)#vul leeg bord met willekeurige bommen bordAfdrukken(bord_gevuld) #druk bord af
Onderzoekend Leren: Geneste Lijsten
Taak 1. Toont een menu met de mogelijkheid om een cijferlijsten van alle leerlingen te printen, cijferlijst van een leerling, of een bepaalde cijfer van een leerling te printen.Taak 2. n.v.t.
Taak 3.
A. "6.7" wordt geprint want dat is van de leerling op index 0 (Alex) het cijfer op index 1.
B. "6.1" wordt geprint want dat is van de leerling op index 2 (Janneke) het cijfer op index 3 (achteraan).
C. Een foutmelding omdat er geen rij 4 is: "list index out of range"
E. Alle gegevens over Bob worden geprint, zowel de naam als de cijfers
F. Er wordt geen Kim in de cijferlijst gevonden dus het programma doorloopt de lijst maar print niks.
Taak 4.
### GLOBALE VARIABELEN leerlingen = [ ["Alex", 6.7, 7.8, 9.0], ["Bob", 4.5], ["Janneke", 5.5, 4.5, 6.1] ] ### FUNCTIES def toonAlle(): for leerling in leerlingen: for cijfer in leerling: print(cijfer) print("\n") #print een nieuwe lege regel def zoekLeerling(): is_leerling_al_gevonden = False #TAAK 4A naam = input ("Geef een naam: ") for leerling in leerlingen: if leerling[0] == naam: is_leerling_al_gevonden = True #TAAK 4A for leerling_gegevens in leerling: print(leerling_gegevens) if is_leerling_al_gevonden == False: #TAAK 4A print("Leerling", naam, "is niet gevonden!") #TAAK 4A def toonLeerlingCijfer(): rij = int(input("Geef de rijnummer van de leerling: ")) kolom = int(input("Geef de kolomnummer van de leerling: ")) cijfer = leerlingen[rij][kolom] print(cijfer) def telAantalCijfersVanLeerling(): #TAAK 4B aantal_cijfers = 0 naam = input ("Geef een naam: ") for leerling in leerlingen: if leerling[0] == naam: print("naam gevonden") for gegevens in leerling: print(gegevens) aantal_cijfers += 1 aantal_cijfers -= 1 #trek er eentje vanaf want de naam zelf zit oon print("aantal cijfers gevonden voor", naam, "zijn", aantal_cijfers ) def voegLeerlingEnCijfersToe(): #TAAK 4c nieuwe_leerling = [] naam = input ("Geef een naam: ") nieuwe_leerling.append(naam) aantal_cijfers = int (input ("Hoeveel cijfers wil je invoeren? ")) for cijfer in range (aantal_cijfers): nieuwe_cijfer = float (input ("Voer cijfer in: ")) nieuwe_leerling.append(nieuwe_cijfer) print("nieuwe_leerling:", nieuwe_leerling) leerlingen.append(nieuwe_leerling) print("leerlingen:", leerlingen) ### HOOFDPROGRAMMA keuze = "" while keuze != "4": print("1. Toon alles") print("2. Zoek leerling") print("3. Toon leerling cijfer") print("4. Toon aantal cijfers van leerling") print("5. Voeg leerling met cijfers toe") print("6. Stop") print("Geef je keuze: ") keuze = input() if keuze == "1": toonAlle() elif keuze == "2": zoekLeerling() elif keuze == "3": toonLeerlingCijfer() elif keuze == "4": #taak 4b telAantalCijfersVanLeerling() elif keuze == "5": # taak 4c voegLeerlingEnCijfersToe() print("Doei")
Afsluitende opgave Adresboek
### VARIABELEN adresboek = [] ### FUNCTIES def toonAlleContacten(): for contact in adresboek: for detail in contact: print(detail) print("\n") #print een nieuwe lege regel def zoekContact(): naam = input ("Geen een naam: ") for contact in adresboek: if contact[0] == naam: for detail in contact: print(detail) def voegContactToe(): naam = input("Geef de naam: ") adres = input("Geef adres: ") telnr = int(input("Geef telefoonnummer: ")) email = input("Geef emailadres: ") adresboek.append( [naam,adres,telnr,email]) print( "Contact toegevoegd" ) ### HOOFDPROGRAMMA keuze = "" while keuze != "4": print("1. Toon alle contacten") print("2. Zoek contact") print("3. Voeg contact toe") print("4. Stop") print("Geef je keuze: ") keuze = input() if keuze == "1": toonAlleContacten() elif keuze == "2": zoekContact() elif keuze == "3": voegContactToe() print("Doei")
Terug naar de theorie en opgaven over Geneste Lijsten
Terug naar de Afsluitende Opgaven over Geneste Lijsten
Terug naar de cursus pagina