Opdracht 4.1
Neem een dobbelsteen en gooi er 20 keren mee. Hou bij hoeveel keer elk aantal ogen gegooid is.
Op een blad papier turf je het aantal keren dat een getal gegooid wordt.
(Turven = streepje zetten achter een getal als het gegooid wordt)
Als je geen dobbelsteen hebt, dan kan je met onderstaande code een dobbelsteen simuleren.
Dobbelsteen simuleren:
#Dobbelsteen
import random
tel = 0
while tel<=20:
print("Beurt: ",tel)
print("Aantal ogen gegooid:",random.randint(1,6))
wacht=input("druk op ENTER voor volgende beurt")
print()
tel=tel+1
print("Einde")
Opdracht 4.2
Ontwerp een algoritme en vertaal dit in een Python script waarmee je dezelfde opdracht als opdracht 4.1 kunt uitvoeren. Na het ingeven van de data print het script een overzicht van het aantal keren dat elk aantal ogen gegooid is.
Als je niet stiekem vals gespeeld hebt en op het internet, of in deze cursus op zoek geweest bent naar een oplossing, dan lijkt je script waarschijnlijk een beetje op onderstaand script.
#opdracht 4.2
tel = 0
aantal_1 = 0
aantal_2 = 0
aantal_3 = 0
aantal_4 = 0
aantal_5 = 0
aantal_6 = 0
while tel<20:
tel = tel + 1
print("Beurt:",tel)
ogen = int(input("Aantal ogen gegooid: "))
if ogen==1:
aantal_1 = aantal_1 + 1
else:
if ogen==2:
aantal_2 = aantal_2 + 1
else:
if ogen==3:
aantal_3 = aantal_3 + 1
else:
if ogen==4:
aantal_4 = aantal_4 + 1
else:
if ogen == 5:
aantal_5 = aantal_5 + 1
else:
aantal_6 = aantal_6 + 1
print()
print("Aantal keren gegooid:")
print(" 1 oog: ",aantal_1)
print(" 2 ogen:",aantal_2)
print(" 3 ogen:",aantal_3)
print(" 4 ogen:",aantal_4)
print(" 5 ogen:",aantal_5)
print(" 6 ogen:",aantal_6)
Je gebruikt hierin 6 verschillende variabelen, ééntje voor elk aantal ogen.
Hoewel je waarschijnlijk voelt dat deze oplossing niet de ideale oplossing is, is deze werkwijze met 6 tellers nog werkbaar.
Willen we nu hetzelfde gaan doen met de balletjes van de Lotto, dan ga ik al moeten werken met 45 tellers, en dan is deze werkwijze niet meer werkbaar. We gaan een andere structuur moeten gebruiken, namelijk lijsten.
Volledig
#Dobbelsteen
import random
tel = 0
a1=0
a2=0
a3=0
a4=0
a5=0
a6=0
aantal=100000
while tel<aantal:
tel=tel+1
#wacht=input("druk op ENTER")
#print("Beurt: ",tel)
gegooid=random.randint(1,6)
#print("Aantal ogen gegooid:",gegooid)
#print()
if gegooid==1:
a1=a1+1
if gegooid==2:
a2=a2+1
if gegooid==3:
a3=a3+1
if gegooid==4:
a4=a4+1
if gegooid==5:
a5=a5+1
if gegooid==6:
a6=a6+1
print("Einde")
print("1: ",a1)
print("2: ",a2)
print("3: ",a3)
print("4: ",a4)
print("5: ",a5)
print("6: ",a6)
Een lijst (list) is een verzameling (of “collectie”) elementen.
De elementen van een lijst zijn geordend. Omdat ze geordend zijn, kun je ieder element van een lijst benaderen via een index
In Python kun je lijst herkennen aan het feit dat de elementen van een lijst tussen vierkante haken ([]) staan.
Voorbeelden:
aantal = [5,4,3,3,2,3]
namen = ["Jan","Piet","An","Linda","Peter"
boodschappen =["melk",2,"eiëren",12,"boter",1]
Je kan de elementen van een lijst individueel benaderen via hun index. Je gebruikt daarvoor de naam van de lijst gevolgd door de index van het element geplaatst tussen vierkante haken.
naam_lijst[index]
Bijvoorbeeld:
aantal[3]
naam[1]
Een lijst (list) is een verzameling (of “collectie”) elementen.
De elementen van een lijst zijn geordend. Omdat ze geordend zijn, kun je ieder element van een lijst benaderen via een index
In Python kun je lijst herkennen aan het feit dat de elementen van een lijst tussen vierkante haken ([]) staan.
Voorbeelden:
aantal = [5,4,3,3,2,3]
namen = ["Jan","Piet","An","Linda","Peter"
boodschappen =["melk",2,"eiëren",12,"boter",1]
Je kan de elementen van een lijst individueel benaderen via hun index. Je gebruikt daarvoor de naam van de lijst gevolgd door de index van het element geplaatst tussen vierkante haken.
naam_lijst[index]
Bijvoorbeeld:
aantal[3]
naam[1]
Opdracht 4.3
Bekijk onderstaande instructies. Schrijf wat je verwacht dat op , en gaat geprint worden.
Welke instructie moet op staan zodat je Mei Lin (de eerste naam uit de lijst) print.
Opdracht 4.3
Bekijk bijgevoegde instructies. Schrijf op wat je verwacht dat bij nummer 1, 2 en 4 gaat geprint worden.
Welke isntructie moet op nummer 3 staan zodat je Mei Lin (eerste naam uit de lijst) print.
Om te zorgen dat je niet alle code moet intypen spring je door op onderstaand icoontje te springen naar een pagina waarop de code staat.
Je zoekt dan naar Opdracht 4.3 - code
Werk je in de shell, dan is zelfs de print-instructie niet nodig.
Uit opdracht 4.3 blijkt duidelijk dat de indices bij nul beginnen, en dat je een foutmelding krijgt als je een index gebruikt die hoger is dan de index van het laatste element. In opdacht 4.3 was dat namen[5]
Je kan ook de positie van het element geven, maar niet vanaf de voorkant van de lijst, maar vanaf de achterkant van de lijst.
Dit wilt zeggen dat in ons voorbeeld namen[-5] en namen[1] verwijzen naar hetzelfde item, namelijk Javier.
Het is dan belangrijk om te weten hoeveel elementen een lijst bevat. Je kan dit bijhouden met tellers. Nog makkelijker is met de instructie len(<lijstnaam>)
Tip: len(<lijstnaam>
De instructie len(<lijstnaam>) is een verkorting van length, ofwel lengte. Er staat dus letterlijk de lengte van <lijstnaam>
Dit wilt zeggen dat je index steeds kleiner of gelijk moet zijn dan len(<lijstnaam>)-1.
Opdracht 4.4
Start met onderstaande lijst en print op het scherm de bloemnamen die in het vet (bold) zijn aangeduid.
bloem = ["tulp","anjer","roos","dahlia","lelie","madeliefje", "boterbloem","begonia","freesia","goudsbloem"]
Wat je moet bekomen zie je hiernaast.
Je kan de lijst ook gewoon knippen en plakken in Thonny.