Vráťme sa k poslednému kódu z predchádzajúcej lekcie:
# Program dostane cislo n, pocet cisel, ktore budu nasledovat
# na dalsich riadkoch. Nasledne nacita tieto cisla a vypise ich.
n = int(input())
vstup = []
for i in range(n):
vstup.append(int(input()))
for i in range(n):
print(vstup[i])
# Napriklad pre vstup:
# 3
# 1
# 5
# 3
# Vyda program vystup (tu skratene do jedneho riadku):
# 1 5 3
Posledný cyklus sa dá zapísať trochu jednoduchšie. Samotný for
cyklus
má totiž hlavičku v tvare for <premenna> in <list>:
. Premenná z cyklu
teda môže nadobúdať hodnoty z ľubovoľného listu. To znamená, že funkcia
range
, ktorú sme si uviedli v predošlej kapitole nerobí nič iné ako
to, že vytvorí postupnosť čísel.1
Skúsme to!
# Funkciu list, ktora prekonvertuje range na list musime pouzit
# preto, lebo range je "lenivy" a na list sa premeni len ked naozaj musi.
print(list(range(5)))
# Vystup: [0, 1, 2, 3, 4]
print(list(range(0, 10, 2)))
# Vystup: [0, 2, 4, 6, 8]
Teraz už môžeme list
vstup
z príkladu, kde sme načítavali n
čísel,
vypísať trochu jednoduchšie.
# Do listu "vstup" priradzujeme "natvrdo" hodnoty aby bol tento kod
# spustitelny bez chybovej hlasky.
vstup = [3, 6, 9]
# Premenna "x" postupne nadobudne hodnoty 3, 6, 9.
for x in vstup:
print(x)
# Vystup:
# 3
# 6
# 9
Realita je ešte o trošku komplikovanejšia,
pretože range je generátor
, ale priblíženie s postupnosťou je dostačujúce. ↩