Jedna z najdôležitejších vecí v programovaní sú opakované výpočty. Programátor je človek lenivý a nechce sa mu všetky zdĺhavo vypisovať.
Napríklad by som chcel vypísať 5x „programujem v pythone“.
print("programujem v python")
print("programujem v python")
print("programujem v python")
print("programujem v python")
print("programujem v python")
Toto by sa asi nechcelo nikomu vypisovať,.. Na toto slúži v pythone cyklus. Prvý s ktorým sa zoznámime je_
for – cyklus
for prem in range(5):
print('programujem v python')
Opakuje zadaný počet krát príkazy odsunutého bloku príkazov. Samotný riadok konštrukcie for obsahuje meno nejakej premennej a je ukončený znakom dvojbodka. Za tým nasleduje blok príkazov – napríklad print()
– aj viacero , ktoré sú odsunuté o 4 medzery.
Priblížime si priebežne jednotlivé časti kódu: for – kľučové slovo cyklu, prem – pomenovanie premennej (može sa nazývať ľubovolne), do ktorej sa nám každým opakovaním cyklu priradí hodnota, v tomto prípade to bude číslo 0,1,2,3,4, táto hodnota pochádza z funkcie range(5), ktorá vracia postupnosť čísle 0-4. O funkcii range píšem viac v ťaháku funkcií.
Pre lepšie pochopenie pozmeníme kód:
for prem in range(5):
print('programujem v python')
print(prem)
programujem v python
0
programujem v python
1
programujem v python
2
programujem v python
3
programujem v python
4
V tele cyklu je možné riešiť čokoľvek. Napríklad môžeme pripočítavať k výsledku hodnotu z premennej prem. V prvom cykle pripočítavame k premennej vysledok 0. V druhom cykle 1, treťom,…
vysledok = 0
for prem in range(5):
print(f"{prem} + {vysledok}")
vysledok = vysledok + prem
print(f"Výsledná hodnota nápočtu je {vysledok}")
# vysledok = vysledok + prem tento zápis vieme skrátiť
# vysledok += prem
0 + 0
1 + 0
2 + 1
3 + 3
4 + 6
Výsledná hodnota nápočtu je 10
Cyklom môžeme prechádzať aj postupnosť reťazcov( musí ich viacero):
for jazyk in 'C#', 'Python', 'Java':
print('Programovací jazyk', jazyk)
Programovací jazyk C#
Programovací jazyk Python
Programovací jazyk Java
Aby sme mohli použiť cyklus, musí byť na strane hodnôt niečo „iterovatelné“ tzv. prechádzatelné (dve slová, viacero čísel). Pokiaľ by sme chceli prechádzať len jedno číslo python vyhlási chybu „TypeError: ‚int‘ object is not iterable“. Za to, ale znakový reťazec iterovateľný je. Vyskúšame prejsť cyklom reťazec „python“:
for pismeno in "Python":
print(pismeno)
# je to to isté, ako keby sme napísali: 'p', 'y', 't', 'h', 'o', 'n':
P
y
t
h
o
n
Pri znakových reťazcoch vieme napríklad zistiť počet znakov, poprípade zmeniť ich poradie.
vstupne_slovo = "Python"
pocet_znakov = 0
retazec_1 = retazec_2 = ""
for znak in vstupne_slovo:
retazec_1 += znak
retazec_2 = znak + retazec_2
pocet_znakov += 1
print(f" počet znakov je: {pocet_znakov}")
print("prvý reťazec: ", retazec_1)
print('druhý reťazec: {}'.format(retazec_2))
# všimni te si rôzne druhy zápisu vo funkcii print
počet znakov je: 6
prvý reťazec: Python
druhý reťazec: nohtyP