Programátoři se neradi opakují. Programování je o automatizaci: nebudeme zdravit každého člověka zvlášť, vezměme seznam padesáti lidí a pozdravíme je všechny najednou!
(No, někteří programátoři asi nejsou moc sociálně nadaní. Ale jinde se ta automatizace fakt hodí!)
Ještě si vzpomínáš na seznamy? Udělej si seznam jmen:
jmena = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'Ty']
Se seznamem pak budeš chtít udělat tohle:
V Pythonu se takový cyklus – opakování „pro každý prvek seznamu“ – píše
pomocí příkazu for
:
for jmeno in jmena:
pozdrav(jmeno)
Celý program bude tedy vypadat takto:
def pozdrav(jmeno):
print('Vítam tě,', jmeno)
jmena = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'Ty']
for jmeno in jmena:
pozdrav(jmeno)
A když ho spustíme:
$ python3 python_intro.py
Vitam ťa, Rachel
Vitam ťa, Monica
Vitam ťa, Phoebe
Vitam ťa, Ola
Vitam ťa, Ty
Jak vidíš, vše, co jsi vložila dovnitř příkazu for
s odsazením,
se zopakuje pro každý prvek seznamu jmena
.
Cyklus for
můžeš použít i s jinými hodnotami než se seznamy.
Často se používá s funkcí range()
.
Když chceš něco 200-krát zopakovat, napiš:
for i in range(200):
print("Už nikdy nebudu házet igelit do táboráku!")
Jak to funguje?
for i in range(X)
se dá přeložit jako „pro každé číslo
od nuly do X“.
Funkce range
onu posloupnost čísel od nuly do X vytvoří.
Do proměnné i
Python postupně uloží každé číslo, podle toho po kolikáté
cyklem prochází.
for i in range(5):
print(i)
0
1
2
3
4
Všimni si, že samotné 5
není zahrnuto ve výsledku:
range(5)
počítá od 0 do 4.
Když počítáš od nuly a chceš pět čísel, skončíš u čtyřky.
Naučila ses:
range
pomáhá když potřebuješ určitý konkrétní počet opakování.