Skúsme vytvoriť program, ktorý načíta číslo n
a čísla od 0
po
n - 1
vypíše na 3 riadkoch za sebou. To nemôže byť ťažké, nie?
# Program vypise cisla od 0 po n - 1 ("n" je na vstupe) na 3 riadkoch za sebou.
n = int(input())
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
# Vstup:
# 3
# Vystup:
# 0 1 2
# 0 1 2
# 0 1 2
Príklad sme ale uvádzali aj z iného dôvodu. Asi už tušíte, že trikrát
skopírovaný for
-cyklus nevyzerá najlepšie. Ako by sme teda mohli
zopakovať riadky viackrát? No predsa cyklom! V cykle, ktorý sa zopakuje
3
-krát napíšeme cyklus, ktorý vypíše prvky od 0
po n - 1
.
# Program vypise cisla od 0 po n - 1 ("n" je na vstupe) na 3 riadkoch za sebou. Pouziva vnoreny cyklus.
n = int(input())
for i in range(3):
for j in range(n):
print(f' {j}', end='')
print() # novy riadok
# Vstup:
# 3
# Vystup:
# 0 1 2
# 0 1 2
# 0 1 2
Dva cykly od seba v označení oddelíme tak, že cyklus opakujúci sa
3
-krát nazveme vonkajší a cyklus v ňom nazveme vnútorný. Všimnite
si, že vnútorný cyklus musí použiť inú premennú ako i
, pretože inak by
došlo ku kolízii mien a vonkajší cyklus by mohol byť ovplyvnený
vnútorným. Vo vnútornom cykle sme preto použili názov j
. Vždy, keď sa
začne vykonávať telo vonkajšieho cyklu, spustí sa znovu vnútorný cyklus
vypisujúci čísla od 0
po n - 1
.
Predstavte si teraz, že chceme vytvoriť malú tabuľku násobilky do 4
.
Tabuľka násobilky je jednoduchá tabuľka, ktorá v ľubovoľnej bunke
obsahuje vynásobené číslo riadku a stĺpca.
* | 1 | 2 | 3 | 4 |
---|---|---|---|---|
1 | 1 | 2 | 3 | 4 |
2 | 2 | 4 | 6 | 8 |
3 | 3 | 6 | 9 | 12 |
4 | 4 | 8 | 12 | 16 |
Teraz napíšeme program, ktorý vypíše telo takejto tabuľky. Ako by sme
postupovali, keby sme chceli takúto tabuľku vypísať po riadkoch zľava
doprava? V riadku s číslom 1
sa vystriedajú všetky hodnoty stĺpcov
(1
až 4
). Potom sa presunieme na ďalší riadok s číslom 2
a opäť sa
vystriedame všetky hodnoty stĺpcov (1
až 4
). Takto by sme
pokračovali až do posledného riadku.
Všimnite si, že pre každý riadok prejdeme vždy všetky stĺpce. Môžeme si
to predstaviť ako cyklus cez riadky od 1
do 4
, v ktorom je navyše
vnorený cyklus cez stĺpce od 1
do 4
.
# Vypis tabulky nasobilky velkosti 5x5.
for i in range(1, 5):
for j in range(1, 5):
# Medzeru medzi cislami nevypisujeme pred prvym cislom v riadku
if j > 1:
print(' ', end='')
print(i * j, end='')
print() # novy riadok