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