programmeren
in python
Jaar 2 - Module 1 - Les 8: Meerdere vragen met een functie
vandaag gaan we leren
-
Meerdere vragen in de quiz zetten
vandaag gaan we leren
-
Meerdere vragen in de quiz zetten
-
Op een nette manier...
vandaag gaan we leren
-
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.
thema jaar 2: Pygame
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.
thema jaar 2: Pygame
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.
thema jaar 2: Pygame
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.
thema jaar 2: Pygame
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.
thema jaar 2: Pygame
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.
CodE 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!
Code 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!
Weten jullie de nadelen nog?
Code 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!
Weten jullie de nadelen nog?
- Het is moeilijker te lezen omdat het programma lang wordt
- Als je later nog iets wilt veranderen, moet dat op meerdere plekken in je programma
Code herhalen
Het is veel beter om een functie te gebruiken. Met een functie kun je een stukje code meerdere keren gebruiken.
Functies
functies maken
Met een def kun code maken die je kan herbruiken.
def zeg_hallo():
print("Hallo allemaal")
functies maken
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")
functies maken
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")
functies maken
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!
functies maken
def zeg_hallo():
print("Hallo allemaal")
zeg_hallo()
zeg_hallo()
zeg_hallo()
Wat gebeurt hier nu precies?
functies maken
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)
functies maken
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)
functies maken
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)
functies maken
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)
functies maken
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)
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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.
functies maken
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()
functies maken
Dit is belangrijk bij functies:
-
Alle regels in de functie moeten beginnen met twee spaties
demo
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
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()
functies in de quiz
Ga naar de functie
Die functie behandelt één vraag tegelijk
Wat zit er in de functie?
functies in de quiz
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?
functies in de quiz
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!
functies in de quiz
Vraag en antwoordopties worden geprint
functies in de quiz
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()
functies in de quiz
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()
Lijsten in de quiz
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.
Lijsten (herhaling)
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:
- Begin bij 0 met tellen!
- Wijs een element aan met rechte haken[ ]
- Ben je klaar met een element?
Haal het uit de lijst met pop().
Lijsten (herhaling)
import random
vraagnummer = random.randint(0,10)
print(vraagnummer)
Dit programma gebruikt random.
Wat weet jij nog over random?
random (herhaling)
import random
vraagnummer = random.randint(0,10)
print(vraagnummer)
Dit programma gebruikt random.
Wat weet jij nog over random?
Belangrijk bij random is:
- Bovenaan je programma moet import random staan
- Kies een willekeurig getal met random.randint(x, y)
- Je krijgt dan een getal tussen de x en de y in
- Denk aan de ronde haakjes!
random (herhaling)
zodadelijk op de computer...
zodadelijk op papier...
opdrachten deel A
opdrachten deel A
Gebruik les a als je nog geen functie in je quiz hebt gemaakt
zodadelijk op de computer...
opdrachten deel B
opdrachten deel B
opdrachten deel B
opdrachten deel B
opdrachten deel B
opdrachten deel B
opdrachten deel B
Python Klas 2 - Module 1 - Les 8
By Felienne
Python Klas 2 - Module 1 - Les 8
Leerdoel Module: PyGame gebruiken Lesdoel: Meerdere vragen met functies doornemen
- 1,147