Stapsgewijze uitvoering van een Python programma

[ Dit is een voorbeeld bij Leren Programmeren in Python, Deel 1 ]

Beschouw het Python programma gepast0.py:

# Een bedrag gepast betalen met zo min mogelijk euromunten

bedrag = input ( 'Geef bedrag tussen 0 en 500 eurocent: ' )

for munt in 200, 100, 50, 20, 10, 5, 2, 1 :
    aantal = 0

    while bedrag >= munt :
        aantal = aantal + 1
        bedrag = bedrag - munt

    if aantal > 0 :
        print aantal, 'x', munt

Hieronder volgt een tabel met het toestandsverloop bij uitvoering met invoer 96. Een '?' staat voor een ongedefinieerde waarde. Een groene achtergrondskleur duidt op een nieuw berekende waarde.

Invoer en Uitvoer bedrag munt aantal Conditie Toelichting
Geef bedrag ... ? ? ? ... input ( 'Geef bedrag ...' )
96 ? ? ? ingetikt door gebruiker
96 ? ? bedrag = ...
96 200 ? for munt in 200, ... :
96 200 0   aantal = 0
96 200 0 False   while bedrag >= munt :
96 200 0 False   if aantal > 0 :
96 100 0 for munt in ..., 100, ... :
96 100 0   aantal = 0
96 100 0 False   while bedrag >= munt :
96 100 0 False   if aantal > 0 :
96 50 0 for munt in ..., 50, ... :
96 50 0   aantal = 0
96 50 0 True   while bedrag >= munt :
96 50 1     aantal = aantal + 1
46 50 1     bedrag = bedrag - munt
46 50 1 False   while bedrag >= munt :
46 50 1 True   if aantal > 0 :
1 x 50 46 50 1     print aantal, 'x', munt
46 20 1 for munt in ..., 20, ... :
46 20 0   aantal = 0
46 20 0 True   while bedrag >= munt :
46 20 1     aantal = aantal + 1
26 20 1     bedrag = bedrag - munt
26 20 1 True   while bedrag >= munt :
26 20 2     aantal = aantal + 1
6 20 2     bedrag = bedrag - munt
6 20 2 False   while bedrag >= munt :
6 20 2 True   if aantal > 0 :
2 x 20 6 20 2     print aantal, 'x', munt
6 10 2 for munt in ..., 10, ... :
6 10 0   aantal = 0
6 10 0 False   while bedrag >= munt :
6 10 0 False   if aantal > 0 :
6 5 0 for munt in ..., 5, ... :
6 5 0   aantal = 0
6 5 0 True   while bedrag >= munt :
6 5 1     aantal = aantal + 1
1 5 1     bedrag = bedrag - munt
1 5 1 False   while bedrag >= munt :
1 5 1 True   if aantal > 0 :
1 x 5 1 5 1     print aantal, 'x', munt
1 2 1 for munt in ..., 2, ... :
1 2 0   aantal = 0
1 2 0 False   while bedrag >= munt :
1 2 0 False   if aantal > 0 :
1 1 0 for munt in ..., 1 :
1 1 0   aantal = 0
1 1 0 True   while bedrag >= munt :
1 1 1     aantal = aantal + 1
0 1 1     bedrag = bedrag - munt
0 1 1 False   while bedrag >= munt :
0 1 1 True   if aantal > 0 :
1 x 1 0 1 1     print aantal, 'x', munt


Copyright © 2003-2004, Tom Verhoeff
Validate HTML