1 of 60

14 oktober 2023

Leren programmeren in Python

Jurgen Nijs

Educatief medewerker

School voor Educatieve Studies

jurgen.nijs@uhasselt.be

2 of 60

Programmeeromgeving

  • Online
    • Programmiz
    • REPLIT
  • Offline
    • Thonny
    • Python
    • Pycharm

3 of 60

Programmeeromgeving

  • Online
    • Programmiz 🡺 Google: programmiz python
    • REPLIT
  • Offline
    • Thonny
    • Python
    • Pycharm

4 of 60

Programmeeromgeving

  • Online
    • Programmiz
    • REPLIT
  • Offline
    • Thonny
    • Python
    • Pycharm

Thonny.org

5 of 60

Programmeeromgeving

  • Online
    • Programmiz
    • REPLIT
  • Offline
    • Thonny
    • Python
    • Pycharm

6 of 60

Programmeeromgeving

  • Online
    • Programmiz
    • REPLIT
  • Offline
    • Thonny
    • Python
    • Pycharm

7 of 60

Mea culpa:

Teach as you Preach

8 of 60

Mea culpa:

Teach as you Preach

9 of 60

Mea culpa:

Old School

10 of 60

Mea culpa:

Blijf niet op

hete kolen zitten…

11 of 60

Mea culpa:

maar onderbreek

en stel vragen.

12 of 60

13 of 60

Waarom Python?

  • Populairste taal van het ogenblik
  • Grote gemeenschap en ondersteuning (bibliotheken)
  • Data-analyse en wetenschappelijke berekeningen
  • Automatisering
  • AI en machine learning
  • Eenvoudig te leren
  • Computationeel denken

14 of 60

Instructie-set

Instructies

15 of 60

Instructie-set

Instructies

16 of 60

Gestructureerd programmeren

Sequentie

Start

Opdracht 1

Opdracht 2

Opdracht 3

Opdracht 4

Einde

17 of 60

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

18 of 60

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

19 of 60

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

20 of 60

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

21 of 60

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:

  • Mogen bestaan uit
    • Letters: a … z
    • Cijfers: 0 … 9
    • Underscore: _
  • Mag niet starten met cijfer
  • Geen gereserveerd woord

  • Betekenisvol

22 of 60

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

23 of 60

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 . *?

24 of 60

25 of 60

26 of 60

27 of 60

28 of 60

29 of 60

30 of 60

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

31 of 60

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:

  • Optelling

+

  • Aftrekking

-

  • Vermenigvuldiging

*

  • Deling

/

  • Machtsverheffing

**

32 of 60

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)

33 of 60

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)

34 of 60

Variabelen

  • Gehele getallen: -9, -5, 0, 2, …

  • Reële getallen: -9.4, -5.0, 2.23, 3.14, …

  • Alfanumeriek (tekst): “Hello world!”, ‘Ik heb 3 appels’, ‘5’

INTEGER

FLOAT

STRING

x = int(….)

x = float(….)

x = str(….)

35 of 60

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

36 of 60

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)

37 of 60

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)

38 of 60

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)

39 of 60

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

40 of 60

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

41 of 60

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

  • Gelijk aan: =

==

  • Groter dan: >

>

  • Kleiner dan: <

<

  • Groter of gelijk aan: ≥

>=

  • Kleiner of gelijk aan:≤

<=

  • Niet gelijk aan: ≠

!=

42 of 60

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

43 of 60

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")

44 of 60

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")

45 of 60

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")

46 of 60

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.

47 of 60

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.

 

 

 

 

48 of 60

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

49 of 60

# 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)

50 of 60

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

+

=

+

=

+

=

+

=

+

=

51 of 60

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

52 of 60

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

53 of 60

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

54 of 60

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

55 of 60

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

56 of 60

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

57 of 60

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.

58 of 60

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

59 of 60

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

60 of 60

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