Korte samenvatting

  • Modules, ook wel frameworks genoemd, zijn onderdelen die derde partijen hebben gemaakt om meer functionaliteiten toe te voegen aan een programmeertaal.
  • Bekende modules zijn Pygame, waarmee je simpele games kunt maken, en Flask, waarmee je extra functionaliteiten kunt toevoegen aan websites.
  • Met de module random kun je onder meer random getallen genereren binnen een bepaalde range.
  • Met de module tkinter kun je Graphical User Interfaces maken. Dit wel zeggen dat je vensters kunt schrijven en daar widgets in kunt verwerken, om zo een functioneel programma te ontwikkelen voor de gebruiker.
  • Hoewel er in deze tutorial wordt gekeken naar slechts vier modules, zijn er nog heel veel meer. Vooral Python heeft veel frameworks, aangezien het een programmeertaal is die al vrij lang bestaat.

Broncode

Random

# De module wordt geimporteerd
import random

# Er wordt 5 keer een random integer geprint, tussen 0 en 100
for i in range(5):
    print(random.randint(0, 101))

Tkinter

# De module wordt geimporteerd
from tkinter import *

# Het venster wordt geinitialiseerd
window = Tk()

# Het venster krijgt een standaardgrootte 
window.configure(width = 500, height = 300)

# Het venster krijgt een titel
window.title("Python Tutorial")

"""
Er wordt gezorgd dat het venster te zien blijft
zolang de gebruiker het venster niet sluit
"""
window.mainloop()

Huiswerk voor deze tutorial

Voor deze praktische opdracht ga je een programma schrijven voor een staatsloterij. Je krijgt een lijst met een groot aantal personen die kans maken op de winst. Eerst introduceer je het programma, dan vindt er een afvalronde plaats en tot slot wordt de winnaar gekozen. Hierbij maak je gebruik van alles wat je tot nu toe hebt geleerd, dat wil zeggen: modules, functies, loops etc.

Als je het programma uitvoert, zou je het volgende resultaat moeten zien:

Je krijgt voordat je begint de beschikking over de volgende code: 

# De nodige modules worden geimporteerd
import random
import datetime
import time

# De array met alle kandidaten die meedoen
kandidatenBegin = [
    "Bas", 
    "Alexander", 
    "Thomas", 
    "Lieneke", 
    "Esmee", 
    "Amber", 
    "Sara", 
    "Nick", 
    "Romeo", 
    "Julia", 
    "Sophie", 
    "Sebastian", 
    "Pepijn", 
    "Ravi",
    "Iris", 
    "Giovanni", 
    "Diego", 
    "Hugo", 
    "Bryan", 
    "Floortje",
    "David", 
    "Elias"
]

# De lijst met alle kandidaten in de finale
# Deze lijst wordt later aangevuld
kandidatenEind = []

Tips/extra informatie

  1. Je maakt vier functies, introductieProgramma(), afvalRonde(), printResterendeKandidaten() en kiesWinnaar().
  2. Je maakt gebruik van de modules die in de bovenstaande code al zijn geïmporteerd. Zoek op internet meer informatie op indien nodig. Het internet is als informatiebron onmisbaar voor een programmeur.
  3. De datum bij de introductie moet dynamisch zijn. Dat wil zeggen: als je het programma een dag later zou uitvoeren, zou de datum nog steeds actueel moeten zijn zonder dat je de code aan hoeft te passen.
  4. Als je een stuk data in een string wilt verwerken door middel van het ‘+’-symbool terwijl dit niet van het type string is, kun je gebruik maken van de ingebouwde functie str() om dit stuk data te converteren naar een type string.
  5. Tussen de string "En de winnaar is...\n" en de bekendmaking van de winnaar zou er een pauze moeten zijn van 3 seconden. Dat wil zeggen, als deze string wordt geprint wordt drie seconden erna pas de winnaar bekendgemaakt.

Oplossing van de huiswerkopdracht

# De nodige modules worden geimporteerd
import random
import datetime
import time

# De array met alle kandidaten die meedoen
kandidatenBegin = [
    "Bas", 
    "Alexander", 
    "Thomas", 
    "Lieneke", 
    "Esmee", 
    "Amber", 
    "Sara", 
    "Nick", 
    "Romeo", 
    "Julia", 
    "Sophie", 
    "Sebastian", 
    "Pepijn", 
    "Ravi",
    "Iris", 
    "Giovanni", 
    "Diego", 
    "Hugo", 
    "Bryan", 
    "Floortje",
    "David", 
    "Elias"
]

# De lijst met alle kandidaten in de finale
# Deze lijst wordt later aangevuld
kandidatenEind = []

# Het programma wordt geintroduceerd
def introductieProgramma():
    """
    De waarde van datum en len(kandidatenBegin) (de lengte van de array kandidatenBegin)
	zijn niet van het type string. Om ze in een string te kunnen verwerken door middel
	van het '+'-symbool moeten ze dus worden omgezet in een string, bijv, str(datum). 
	Je kunt een getal immers niet bij een stukje tekst optellen!
    """
    print("Welkom bij de trekking van de staatsloterij van " + str(datum) + "!")
    print("We hebben in totaal " + str(len(kandidatenBegin)) + " deelnemers.\n")

# De eerste personen vallen af, er blijft nog een kleinere groep over
def afvalRonde():
    for persoon in kandidatenBegin:
	# Er wordt een random getal gegenereerd per iteratie
	# Dit kan 0 of 1 zijn
	trueOfFalse = random.randint(0, 1)
		
	"""
	Als het zojuist gegenereerde getal gelijk is aan 0, wordt het geselecteerde
		persoon niet toegevoegd aan de finalisten. Als het getal gelijk is aan 1, 
		wordt het persoon dus wel bij de finalisten gevoegd. 
	""" 
	if trueOfFalse == 0:
	    continue
	elif trueOfFalse == 1:
	    kandidatenEind.append(persoon)

# De finalisten worden geprint
def printResterendeKandidaten():
    print("De volgende kandidaten zijn nog over:")

# De finalisten worden op een regel geprint, gescheiden door komma's
    print(*kandidatenEind, sep = ", ")

# Er wordt een winnaar gekozen
def kiesWinnaar():
    print("En de winnaar is...\n")

    # Er wordt drie seconden gewacht om spanning op te bouwen
    time.sleep(3)

    """
    Er wordt een willekeurig nummer gegenereerd tussen 0 en de lengte van de 
	array kandidatenEind, ofwel het aantal finalisten.
    """
    willekeurigNummerInArrray = random.randint(0, len(kandidatenEind))

    """
    Het willekeurig gegenereerde nummer wordt als index gebruikt in de array
	kandidatenEind, om een winnaar te kiezen.
    """
    winnaar = 	kandidatenEind[willekeurigNummerInArrray]

    print(winnaar + " heeft gewonnen! Gefeliciteerd met de winst!")

# De functies worden op volgorde uitgevoerd
introductieProgramma()

afvalRonde()

printResterendeKandidaten()

kiesWinnaar()