Ako príklad pre vnorené cykly by som ukázal na nasledujúcej úlohe. Chceme vypísať slovo „python“ 10 x 10 (ako tabuľku) a naviac v riadku pridať poradové číslo slova a riadku.
for j in range(1, 11):
print("riadok č.:", j)
for i in range(1, 11):
print("python ", i, " ", end="")
print()
Poďme si rozobrať daný kód:
Program ide na riadok 1 kde začína prvý cyklus, ide na prvý odsadený riadok kde sa nachádza funkcia print. Vykoná funkciu print, ktorá vypíše text „riadok č.:“ a premennú j do ktorej sa priradí číslo z funkcie range, v tomto prípade 1. Následne prejde program na riadok č.3 v ktorej sa nachádza ďalší cyklus. Opäť prejde na odsadený riadok č.4 kde vypíše text „python “ k nemu vypíše premennú i. Tu som použil možnosť end=““, aby sa zakaždým nezalomil riadok. Teraz sa vráti opäť na riadok č. 3 kde priradí do premennej i ďalšiu hodnotu z range (č. 2) a opäť ho vyprintuje. Toto bude robiť dookola až kým sa nedostane na číslo 10. Prejde na riadok č.5 kde je funkcia print, aby sa zalomil riadok. Tu skončí a vráti sa na riadok č. 1. Všetko sa to zopakuje až kým prvý cyklus nedosiahne č.10. Vtedy sa program dostane na koniec a skočí. Tu je výsledok:
riadok č.: 1
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 2
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 3
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 4
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 5
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 6
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 7
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 8
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 9
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
riadok č.: 10
python 1 python 2 python 3 python 4 python 5 python 6 python 7 python 8 python 9 python 10
Ďalším príkladom pre vnorené cykly je nasledovný príklad. Chceme vytvoriť tabuľku čísel od 0 po 99 do 10 riadkov (10×10).
for i in range(10):
print(i, i+10, i+20, i+30, i+40, i+50, i+60, i+70, i+80, i+90)
Výsledok vyzerá takto:
0 10 20 30 40 50 60 70 80 90
1 11 21 31 41 51 61 71 81 91
2 12 22 32 42 52 62 72 82 92
3 13 23 33 43 53 63 73 83 93
4 14 24 34 44 54 64 74 84 94
5 15 25 35 45 55 65 75 85 95
6 16 26 36 46 56 66 76 86 96
7 17 27 37 47 57 67 77 87 97
8 18 28 38 48 58 68 78 88 98
9 19 29 39 49 59 69 79 89 99
čo vieme ale zapísať aj nasledovne:
for i in range(10):
# riadok
for j in range(0, 100, 10):
# stĺpec
print(i+j, end=' ')
print()
Pri tomto zápise nie je nutné všetko pracne vypisovať.
Vnútorný for-cyklus vypisuje 10 čísel, pričom premenná cyklu j
postupne nadobúda hodnoty 0
, 10
, 20
, … 90
. K tejto hodnote sa pripočítava číslo riadka tabuľky, teda premenná i
. Tým dostávame rovnakú tabuľku, ako predchádzajúci program. Rovnaký výsledok vytvorí aj nasledovné riešenie:
for i in range(10):
for j in range(i, 100, 10):
print(j, end=' ')
print()
Cykly sú pre programátorov jedny z najdôležitejších vecí. Dokážu efektívne zmenšiť kód, poprípade bez nich by ani nebolo možné niektoré programátorské úlohy vyriešiť.