Vnořené cykly
Cyklus může obsahovat jiný cyklus. Říká se mu pak vnořený cyklus. Při každém průchodu vnějšího cyklu proběhne vnitřní cyklus celý. Vypišme všechna trička, která obchod prodává, v každé velikosti a každé barvě:
velikosti = ["S", "M"]
barvy = ["červená", "modrá", "černá"]
for velikost in velikosti:
for barva in barvy:
print(velikost, barva)Vypíše:
S červená
S modrá
S černá
M červená
M modrá
M černáVnější cyklus vezme "S" a vnitřní cyklus projde všechny tři barvy. Teprve pak vezme vnější cyklus "M" a vnitřní cyklus znovu projde všechny barvy. Blok vnitřního cyklu se tak provede 2 × 3 = 6krát. Vnitřní cyklus je odsazený uvnitř vnějšího a jeho vlastní blok je odsazený ještě o úroveň víc. Proměnné obou cyklů pojmenujte různě (tady velikost a barva), abyste věděli, která je která.
Vnořené cykly se hodí i pro výpis tabulek. Zatím každý print() svůj řádek ukončil. S end=" " skončí místo toho mezerou a další print() pokračuje na stejném řádku. Řádek pak ukončí prázdný print(). Tento kód vypíše kus násobilky, jeden řádek pro každé číslo:
for radek in range(1, 4):
for sloupec in range(1, 6):
print(radek * sloupec, end=" ")
print()1 2 3 4 5
2 4 6 8 10
3 6 9 12 15 Všimněte si, kde je prázdný print(): je odsazený jen jednou, takže patří do vnějšího cyklu. Provede se pokaždé, když vnitřní cyklus vypíše celý řádek.
Jak psát:
Pokyny
Cestovní kancelář nabízí výlet do každého města ze seznamu mesta s každou aktivitou ze seznamu aktivity. Napište cyklus přes mesta, do něj vnořte cyklus přes aktivity a vypište každou dvojici příkazem print(mesto, aktivita). Výstup začíná řádky Praha Tenis, Praha Nákupy, Praha Památky, Brno Tenis…
Pod to vypište malou násobilku od 1 do 5: pět řádků a v každém pět čísel oddělených mezerou. První řádek je 1 2 3 4 5, druhý 2 4 6 8 10 a poslední 5 10 15 20 25. Použijte dva vnořené cykly s range(), print(..., end=" ") a prázdný print().