Jaar 2 - Module 1 - Les 8: Meerdere vragen met een functie
Meerdere vragen in de quiz zetten
Meerdere vragen in de quiz zetten
Op een nette manier...
Meerdere vragen in de quiz zetten
Op een nette manier...
Dus niet met copy-paste
Maar met een functie!
Met PyGame kunnen we een user interface maken.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
Soms gebruik je in je programma meerdere keren dezelfde soort code.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
Soms gebruik je in je programma meerdere keren dezelfde soort code. Dan is het verleidelijk om te knippen en plakken, maar... er is een betere manier.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
Soms gebruik je in je programma meerdere keren dezelfde soort code. Dan is het verleidelijk om te knippen en plakken, maar... er is een betere manier.
Dat gaan we vandaag bekijken!
Vorige week hebben we gezien dat je soms code wilt herhalen.
Vorige week hebben we gezien dat je soms code wilt herhalen. Dat kan door code te knippen en plakken, maar dat wordt snel een rommeltje!
Vorige week hebben we gezien dat je soms code wilt herhalen. Dat kan door code te knippen en plakken, maar dat wordt snel een rommeltje!
Weten jullie de nadelen nog?
Vorige week hebben we gezien dat je soms code wilt herhalen. Dat kan door code te knippen en plakken, maar dat wordt snel een rommeltje!
Weten jullie de nadelen nog?
Het is veel beter om een functie te gebruiken. Met een functie kun je een stukje code meerdere keren gebruiken.
Met een def kun code maken die je kan herbruiken.
def zeg_hallo():
print("Hallo allemaal")
Met een def kun code maken die je kan herbruiken.
Wat is er allemaal belangrijk bij het maken van een functie? Wat weten jullie nog?
def zeg_hallo():
print("Hallo allemaal")
Met een def kun code maken die je kan herbruiken.
Wat is er allemaal belangrijk bij het maken van een functie? Wat weten jullie nog?
def zeg_hallo():
print("Hallo allemaal")
Deze dingen zijn belangrijk:
Je begint met def en dan een naam
Je mag de naam zelf kiezen, als bij een variabele
Achter de naam komen twee ronde haakjes
Achter de regel met de def hoort een dubbele punt :
Regels onder de def beginnen met 2 spaties
Nog even in de herhaling!
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
zeg_hallo()
zeg_hallo()
Wat gebeurt hier nu precies?
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
zeg_hallo()
zeg_hallo()
Wat gebeurt hier nu precies?
We kijken eerste nog even naar wat er gebeurt als je een variabele instelt.
naam = "Jan"
print(naam)
Hier stellen we naam in
Wat gebeurt hier nu precies?
We kijken eerste nog even naar wat er gebeurt als je een variabele instelt.
naam = "Jan"
print(naam)
Hier stellen we naam in
Python onthoudt dat er iets is dat naam heet.
Wat gebeurt hier nu precies?
We kijken eerste nog even naar wat er gebeurt als je een variabele instelt.
naam = "Jan"
print(naam)
Hier stellen we naam in
Python onthoudt dat er iets is dat naam heet.
Verder gebeurt er in deze regel niks.
Wat gebeurt hier nu precies?
We kijken eerste nog even naar wat er gebeurt als je een variabele instelt.
naam = "Jan"
print(naam)
Hier gebruiken we naam
Wat gebeurt hier nu precies?
We kijken eerste nog even naar wat er gebeurt als je een variabele instelt.
naam = "Jan"
print(naam)
Python zoekt omhoog in de code waar naam wordt ingesteld, en print dat uit.
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Eerst komt deze code. Python onthoudt dat er een functie is die zeg_hallo() heet.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Python zoekt omhoog in de code waar zeg_hello wordt ingesteld, en voert de code uit die daarin staat
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Eerst komt deze code. Python onthoudt dat er een functie is die zeg_hallo() heet.
Verder gebeurt er nu nog niks.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Python zoekt omhoog in de code waar zeg_hello() wordt ingesteld, en voert de code uit die daarin staat
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Python zoekt omhoog in de code waar zeg_hello() wordt ingesteld, en voert de code uit die daarin staat
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Nu komt deze regel
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Is zeg_hello klaar? Dan gaat Python naar de volgende regel.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Is zeg_hello klaar? Dan gaat Python naar de volgende regel.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Is die regel klaar? Dan gaat Python weer zoeken naar zeg_hallo.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Is die regel klaar? Dan gaat Python weer zoeken naar zeg_hallo.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Deze regel wordt nu nog een keer uitgevoerd.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Nu is deze regel ook klaar.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Wat gebeurt hier nu precies?
Bij een functie gaat het eigenlijk hetzelfde.
Dus het programma is klaar.
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
print("Ook hallo!")
zeg_hallo()
Een functie mag ook meerdere regels hebben. Die worden dan een voor een uitgevoerd.
def zeg_hallo_allemaal():
print("Hallo Ian")
print("Hallo Ayse")
print("Hallo Humeyra")
zeg_hallo_allemaal()
zeg_hallo_allemaal()
Dit is belangrijk bij functies:
Alle regels in de functie moeten beginnen met twee spaties
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Stel de 1e vraag in
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Zet die op het scherm
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Stel de antwoordtekst in
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Zet die op het scherm
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Stel het goede antwoord in
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Ga naar de functie
Zo maak je meerdere vragen in je quiz.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Ga naar de functie
Die functie behandelt één vraag tegelijk
Wat zit er in de functie?
def stel_vraag():
antwoord = 'geen'
vorige_antwoord = 'geen'
while not antwoord == goede_antwoord:
#ververs het scherm
screen.blit(vraagblok, (0, 275))
screen.blit(optiesblok, (0, 310))
# letters op het scherm
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
antwoord = 'A'
#en ook voor B/D
if antwoord == vorige_antwoord:
print('Dat probeerde je net ook al')
else:
if antwoord == goede_antwoord:
print('Goedzo!')
else:
print('Helaas,', antwoord, 'is niet goed')
vorige_antwoord = antwoord
antwoord = 'geen' #reset het antwoord zodat de speler nog een keer kan proberen
time.sleep(0.5) #even wachten op de volgende klik!
Wat zit er in de functie?
De lus gaat door tot het goede antwoord gekozen is
def stel_vraag():
antwoord = 'geen'
vorige_antwoord = 'geen'
while not antwoord == goede_antwoord:
#ververs het scherm
screen.blit(vraagblok, (0, 275))
screen.blit(optiesblok, (0, 310))
# letters op het scherm
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
antwoord = 'A'
#en ook voor B/D
if antwoord == vorige_antwoord:
print('Dat probeerde je net ook al')
else:
if antwoord == goede_antwoord:
print('Goedzo!')
else:
print('Helaas,', antwoord, 'is niet goed')
vorige_antwoord = antwoord
antwoord = 'geen' #reset het antwoord zodat de speler nog een keer kan proberen
time.sleep(0.5) #even wachten op de volgende klik!
Wat zit er in de functie?
def stel_vraag():
antwoord = 'geen'
vorige_antwoord = 'geen'
while not antwoord == goede_antwoord:
#ververs het scherm
screen.blit(vraagblok, (0, 275))
screen.blit(optiesblok, (0, 310))
# letters op het scherm
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
antwoord = 'A'
#en ook voor B/D
if antwoord == vorige_antwoord:
print('Dat probeerde je net ook al')
else:
if antwoord == goede_antwoord:
print('Goedzo!')
else:
print('Helaas,', antwoord, 'is niet goed')
vorige_antwoord = antwoord
antwoord = 'geen' #reset het antwoord zodat de speler nog een keer kan proberen
time.sleep(0.5) #even wachten op de volgende klik!
Vraag en antwoordopties worden geprint
Ook hier zit herhaling in! Kun jij daar ook een functie maken?
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Ook hier zit herhaling in! Kun jij daar ook een functie maken?
Denk aan de stappen van vorige week en omcirkel dezelfde stukjes.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
De vragen in jouw quiz ga je straks in een lijst opslaan.
Dan wordt het nog mooier! Je kiest ook steeds een willekeurige vraag.
vraagtekst = "Wat is de hoofdstad van Nederland?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Haarlem B) Rotterdam C)
Amsterdam D) Eindhoven"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'C'
stel_vraag()
vraagtekst = "Wat is de hoofdstad van Belgie?"
vraagblok = font.render(vraagtekst, True, (255,255,255))
optiestekst = "A) Gent B) Brussel C)
Antwerpen D) Brugge"
optiesblok = font.render(optiestekst, True, (255,255,255))
goede_antwoord = 'B'
stel_vraag()
Dit programma gebruikt een lijst.
Wat weet jij nog over lijsten?
dieren = ['schildpad', 'kikker']
print('De', dieren[0], 'loopt door het bos.')
dieren.remove(dieren[0])
dieren = ['schildpad', 'kikker']
print('De', dieren[0], 'loopt door het bos.')
dieren.pop(0)
Dit programma gebruikt een lijst.
Wat weet jij nog over lijsten?
Belangrijk bij lijsten is:
import random
vraagnummer = random.randint(0,10)
print(vraagnummer)
Dit programma gebruikt random.
Wat weet jij nog over random?
import random
vraagnummer = random.randint(0,10)
print(vraagnummer)
Dit programma gebruikt random.
Wat weet jij nog over random?
Belangrijk bij random is:
Gebruik les a als je nog geen functie in je quiz hebt gemaakt