Cyklus cez list

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

  1. 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.