14 oktober 2023
Leren programmeren in Python
Jurgen Nijs
Educatief medewerker
School voor Educatieve Studies
jurgen.nijs@uhasselt.be
Programmeeromgeving
Programmeeromgeving
Programmeeromgeving
Thonny.org
Programmeeromgeving
Programmeeromgeving
Mea culpa:
Teach as you Preach
Mea culpa:
Teach as you Preach
Mea culpa:
Old School
Mea culpa:
Blijf niet op
hete kolen zitten…
Mea culpa:
maar onderbreek
en stel vragen.
Waarom Python?
Instructie-set
Instructies
Instructie-set
Instructies
Gestructureerd programmeren
Sequentie
Start
Opdracht 1
Opdracht 2
Opdracht 3
Opdracht 4
Einde
Gestructureerd programmeren
Sequentie
Start
Opdracht 1
Opdracht 2
Opdracht 3
Opdracht 4
Einde
Selectie
Start
Opdracht 1
<conditie>
Ja Nee
Opdracht 3
Opdracht 4
Einde
Opdracht 5
Opdracht 6
Gestructureerd programmeren
Sequentie
Start
Opdracht 1
Opdracht 2
Opdracht 3
Opdracht 4
Einde
Selectie
Start
Opdracht 1
<conditie>
Ja Nee
Opdracht 3
Opdracht 4
Einde
Opdracht 5
Opdracht 6
Start
Opdracht 1
Einde
Zolang <conditie> herhaal
Zolang <conditie> herhaal
Opdracht 2
Opdracht 3
Opdracht 4
Iteratie
Gestructureerd programmeren
Sequentie
Start
Opdracht 1
Opdracht 2
Opdracht 3
Opdracht 4
Einde
Selectie
Start
Opdracht 1
<conditie>
Ja Nee
Opdracht 3
Opdracht 4
Einde
Opdracht 5
Opdracht 6
Start
Opdracht 1
Einde
Zolang <conditie> herhaal
Zolang <conditie> herhaal
Opdracht 2
Opdracht 3
Opdracht 4
Iteratie
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
EINDE |
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
v0 = 0
a = 2
dt = 7
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
Variabelen:
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
v0 = 0
a = 2
dt = 7
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
x = 1
x = x + 1
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
v0 = 0
a = 2
dt = 7
v = v0+a
x . *?
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
v0 = 0
a = 2
dt = 7
v = v0+a*dt
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
v0 = 0
a = 2
dt = 7
v = v0+a*dt
print(v)
Basisbewerkingen:
+
-
*
/
**
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1
# toewijzing
v0 = 0
a = 2
dt = 7
# formule & berekening
v = v0+a*dt
# Output
print(v)
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 lees |
a 🡨 lees |
dt 🡨 lees |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1.b
# ingeven
v0 = input()
a = input()
dt = input()
# formule & berekening
v = v0+a*dt
# Output
print(v)
Variabelen
�
�
INTEGER
FLOAT
STRING
x = int(….)
x = float(….)
x = str(….)
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 lees |
a 🡨 lees |
dt 🡨 lees |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1.b
# ingeven
v0 = input()
a = input()
dt = input()
# formule & berekening
v = v0+a*dt
# Output
print(v)
STRING
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 0 |
a 🡨 2 |
dt 🡨 7 |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1.b
# ingeven
v0 = float(input())
a = float(input())
dt = float(input())
# formule & berekening
v = v0+a*dt
# Output
print(v)
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 lees |
a 🡨 lees |
dt 🡨 lees |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1.b
# ingeven
v0 = float(input(“Beginsnelheid: “))
a = float(input(“Versnelling: “))
dt = float(input(“Tijd: “))
# formule & berekening
v = v0+a*dt
# Output
print(v)
Opdracht 1
Een auto start vanuit rust en versnelt met een constante versnelling van 2 m/s². �Wat is zijn snelheid na een periode van 7 seconden?
Opdracht 1 |
v0 🡨 lees |
a 🡨 lees |
dt 🡨 lees |
v 🡨 v0 + a . dt |
Output: v |
# opdracht 1.b
# ingeven
v0 = float(input(“Beginsnelheid: “))
a = float(input(“Versnelling: “))
dt = float(input(“Tijd: “))
# formule & berekening
v = v0+a*dt
# Output
print(“Eindsnelheid:“,v)
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
conditie
Ja Nee
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
conditie
Ja Nee
==
>
<
>=
<=
!=
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
geeft_melk = “Ja”
Ja Nee
Output: zoogdier
Output: Geen zoogdier
EINDE
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
geeft_melk = “Ja”
Ja Nee
Output: zoogdier
Output: Geen zoogdier
EINDE
# zoogdieren
dier = input("Geef dier: ")
geeft_melk = input(“Dier gezoogd? (ja/nee) ")
if geeft_melk == "ja":
print("Het is een zoogdier")
else:
print("Het is GEEN zoogdier")
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
geeft_melk = “Ja”
Ja Nee
Output: zoogdier
Output: Geen zoogdier
EINDE
# zoogdieren
dier = input("Geef dier: ")
geeft_melk = input(“Dier gezoogd? (ja/nee) ")
if geeft_melk == "ja":
print("Het is een zoogdier")
else:
print("Het is GEEN zoogdier")
Opdracht 2
Schrijf een script dat aan de gebruiker de naam van een dier vraagt en nog 1 extra vraag stelt.
Het script geeft dan antwoord of het een zoogdier is of niet?
Zoogdieren
dier🡨 lees
geeft_melk🡨 lees
geeft_melk = “Ja”
Ja Nee
Output: zoogdier
Output: Geen zoogdier
EINDE
# zoogdieren
dier = input("Geef dier: ")
geeft_melk = input(“Dier gezoogd? (ja/nee) ")
if geeft_melk == "ja":
print("Het is een zoogdier")
else:
print("Het is GEEN zoogdier")
Opdracht 3
Je kan het aantal mol van een stof is de verhouding tussen de massa van de stof en de molmassa
Schrijf een script waarbij de gebruiker 2 grootheden ingeeft en het script de derde berekent.
Opdracht 3
Je kan het aantal mol van een stof is de verhouding tussen de massa van de stof en de molmassa
Schrijf een script waarbij de gebruiker 2 grootheden ingeeft en het script de derde berekent.
Opdracht 2
# MOL & Molmassa
aantal_mol = input(“Aantal mol: “)
Massa = input(“Massa v/d stof: “)
molmassa = input(“Molmassa: “)
if aantal_mol==“”:
aantal_mol = float(massa)/float(molmassa)
print(“Aantal mol:”,aantal_mol)
if massa==“”:
massa = float(aantal_mol)* float(molmassa)
print(“Massa:”,massa)
if molmassa=“”:
molmassa = massa / aantal_mol
print(“Molmassa:”,molmassa)
MOL en MOLMASSA
aantal_mol 🡨 lees
massa🡨 lees
molmassa🡨 lees
Aantal_mol leeg?
Ja Nee
n 🡨 massa/molmassa
Output: n
massa leeg?
Ja Nee
m 🡨 aantal mol . molmassa
Output: m
molmassa leeg?
Ja Nee
molmassa 🡨 massa/aantal mol
Output: molmassa
EINDE
# MOL & Molmassa
aantal_mol = input(“Aantal mol: “)
Massa = input(“Massa v/d stof: “)
molmassa = input(“Molmassa: “)
if aantal_mol==“”:
aantal_mol = float(massa)/float(molmassa)
print(“Aantal mol:”,aantal_mol)
if massa==“”:
massa = float(aantal_mol)* float(molmassa)
print(“Massa:”,massa)
if molmassa=“”:
molmassa = massa / aantal_mol
print(“Molmassa:”,molmassa)
Opdracht 4: Fibonacci
Schrijf een script dat aan de gebruiker een positief geheel getal vraagt. Het script geeft alle getallen van Fibonacci die kleiner of gelijk zijn aan dit getal.
0
1
1
2
3
5
8
…
+
=
+
=
+
=
+
=
+
=
Opdracht 4: Fibonacci
Schrijf een script dat aan de gebruiker een positief geheel getal vraagt. Het script geeft alle getallen van Fibonacci die kleiner of gelijk zijn aan dit getal.
0
1
1
2
3
5
8
…
Opdracht 4: Fibonacci
Schrijf een script dat aan de gebruiker een positief geheel getal vraagt. Het script geeft alle getallen van Fibonacci die kleiner of gelijk zijn aan dit getal.
0
1
1
2
3
5
8
…
Getallen van Fibonacci
getal 🡨 lees
fib1 🡨 0
fib2 🡨 1
Output: 0
Zolang fib2 ≤ getal
Output: fib2
x = fib2 + fib1
fib1 = fib2
fib2 = x
EINDE
Opdracht 4: Fibonacci
Getallen van Fibonacci
getal 🡨 lees
fib1 🡨 0
fib2 🡨 1
Output: 0
Zolang fib2 ≤ getal
Output: fib2
x = fib2 + fib1
fib1 = fib2
fib2 = x
EINDE
# Opdracht 4: Fibonacci
getal = int(input(“Geef getal: "))
fib1 = 0
fib2 = 1
print(0)
while fib2 <= getal:
print(fib2)
x = fib2 + fib1
fib1 = fib2
fib2 = x
Opdracht 4: Fibonacci
Getallen van Fibonacci
getal 🡨 lees
fib1 🡨 0
fib2 🡨 1
Output: 0
Zolang fib2 ≤ getal
Output: fib2
x = fib2 + fib1
fib1 = fib2
fib2 = x
EINDE
# Opdracht 4: Fibonacci
getal = int(input(“Geef getal: "))
fib1 = 0
fib2 = 1
print(0)
while fib2 <= getal:
print(fib2)
x = fib2 + fib1
fib1 = fib2
fib2 = x
Opdracht 4: Fibonacci
Getallen van Fibonacci
getal 🡨 lees
fib1 🡨 0
fib2 🡨 1
Output: 0
Zolang fib2 ≤ getal
Output: fib2
x = fib2 + fib1
fib1 = fib2
fib2 = x
EINDE
# Opdracht 4: Fibonacci
getal = int(input(“Geef getal: "))
fib1 = 0
fib2 = 1
print(0)
while fib2 <= getal:
print(fib2)
x = fib2 + fib1
fib1 = fib2
fib2 = x
Opdracht 5: Zeckendorf-voorstelling
Zeckendorf voorstelling
= getal voorgesteld door een som van Fibonacci-getallen waarbij elk Fibonacci-getal slecht éénmaal voorkomt, en geen twee opeenvolgende Fibonacci-getallen.
Zeckendorf
getal 🡨 lees
reeks 🡨 “”
Zolang getal >0
Bepaal grootste fib. getal ≤ getal
getal 🡨 getal – grootste fib. getal
reeks 🡨 reeks + ”+” + grootste fib. getal
EINDE
Grootste fib. getal
fib1 🡨 0
fib2 🡨 1
Zolang fib2 ≤ getal
Output: fib2
x 🡨 fib2 + fib1
fib1 🡨 fib2
fib2 🡨 x
EINDE
Opdracht 5: Zeckendorf-voorstelling
Zeckendorf
getal 🡨 lees
reeks 🡨 “”
Zolang getal >0
getal 🡨 getal – fib1
reeks 🡨 reeks + ”+” + fib1
EINDE
Bepaal fib1 �(Grootst mogelijke Fibonacci-getal dat kleiner of gelijk is aan getal)
Zeckendorf voorstelling
= getal voorgesteld door een som van Fibonacci-getallen waarbij elk Fibonacci-getal slecht éénmaal voorkomt, en geen twee opeenvolgende Fibonacci-getallen
Schrijf een script dat aan de gebruiker een natuurijk getal vraagt. Het script stelt dit getal voor met de Zeckendorf voorstelling.
Opdracht 5: Zeckendorf-voorstelling
Zeckendorf
getal 🡨 lees
reeks 🡨 “”
Zolang getal >0
getal 🡨 getal – fib1
reeks 🡨 reeks + ”+” + fib1
EINDE
fib1 🡨 0
fib2 🡨 1
Zolang fib2 ≤ getal
x 🡨 fib2 + fib1
fib1 🡨 fib2
fib2 🡨 x
Zeckendorf voorstelling
= getal voorgesteld door een som van Fibonacci-getallen waarbij elk Fibonacci-getal slecht éénmaal voorkomt, en geen twee opeenvolgende Fibonacci-getallen
Opdracht 5: Zeckendorf-voorstelling
Zeckendorf
getal 🡨 lees
reeks 🡨 “”
Zolang getal >0
getal 🡨 getal – fib1
reeks 🡨 reeks + ”+” + fib1
Output: reeks
fib1 🡨 0
fib2 🡨 1
Zolang fib2 ≤ getal
Output: fib2
x 🡨 fib2 + fib1
fib1 🡨 fib2
fib2 🡨 x
# Zeckendorf
getal = int(input("Geef getal: "))
reeks=""
while getal>0:
fib1=0
fib2=1
while fib2<=getal:
x=fib2+fib1
fib1=fib2
fib2=x
getal = getal - fib1
reeks=reeks + " + " + str(fib1)
print(reeks)
EINDE
Zeckendorf
getal 🡨 lees
reeks 🡨 “=”
Zolang getal >0
getal 🡨 getal – fib1
reeks 🡨 reeks + ”+” + fib1
EINDE
fib1 🡨 0
fib2 🡨 1
Zolang fib2 ≤ getal
Output: fib2
x 🡨 fib2 + fib1
fib1 🡨 fib2
fib2 🡨 x
reeks = “=”
Ja Nee
reeks 🡨 reeks + fib1
Output: reeks