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,010