Návod na Python – cyklus s počtem opakování

Python cyklus for

Cyklus s daným počtem opakování se hodí při každém programování. Sice jej můžeme vždy vytvořit pomocí cyklu typu WHILE, ale je to méně přehledné než klasická konstrukce cyklu typu FOR.

V cyklu typu FOR řídí počet opakování tzv. řídící proměnná cyklu, která nabývá obykle hodnot v nějakém číselném rozmezí od A do B. V Pythonu je cyklus typu FOR o něco univerzálnější a vedle cyklu s počtem opakování jej lze také použít pro procházení iterovatelných datových objektů, tj. polí, n-tic, slovníků, množin nebo řetězců.

Cyklus FOR s celočíselnou řídící proměnnou

Pro užití cyklu FOR s daným počtem opakování použijeme v Pythonu formuli s konstruktorem (funkcí) range(). Tento konstruktor vytvoří na základě zadaných parametrů právě požadovaný iterovatelný objekt, který pak v cyklu FOR předá řídící proměnné požadované číselné hodnoty. Základní konstrukce cyklu typu FOR s počtem opakování pak vypadá takto:

for i in range(5):
  print(i)

Pro řídící proměnnou i v rozsahu od 0 do 4:
→ vytiskni i

Všimněte si, že volání range(5) vytvoří skutečně posloupnost pěti čísel, ale počínaje nulou, poslední je číslo 4. Pokud bychom chtěli pracovat s čísly 1 až 5 v řídící proměnné cyklu, máme možnost použít konstruktor range() se dvěma parametry, dolní a horní mezí. Syntax konstruktoru pak vypadá range(start, stop), např. takto:

for i in range(1,6):
  print(i)

Pro řídící proměnnou i v rozsahu od 1 do 5:
→ vytiskni i

Horní mez je vždy o jedničku větší, než poslední číslo předávané řídící proměnné i. Konstruktor range() může mít ještě třetí parametr, a tím je skok, tj. o kolik větší má být každé další číslo posloupnosti, které se pak předává do řídící proměnné: range(start, stop, step).

for i in range(1,20,2):
  print(i)

Výstupem bude řada lichých čísel:
1, 3, 5, 7, 9, 11, 13, 15, 17, 19.
Další už se nevytiskne, protože už není menší než horní mez 20.

Cykly FOR stejně jako jiné algoritmické struktury můžeme vnořovat. Použití je snadno vidět např. při tvorbě malé násobilky v následujícím příkladu (spustit si jej můžete zde).

Příklad: malá násobilka pomocí dvou vnořených cyklů FOR

print("Malá násobilka:")
for i in range(1,11):
  for j in range(1,11):
    print(i,"*",j,"=",i*j)

Cyklus FOR jako iterátor pole

Pro procházení polí, řetězců a jiných iterovatelných objektů je cyklus FOR přímo stvořený. Není potřeba vytvířet žádné rozmezí, stačí prostě projít pole či řetězec.

ret = "řetězec"
for z in ret:
  print(z)

Výstupem bude řada znaků „ř“, „e“, „t“, „ě“, „z“, „e“, „c“ vytištěných na samostatných řádcích.

Podobně, pokud vytvoříme např. pole čísel či jiných objektů, můžeme toto pole procházet snadno pomocí jedné proměnné. Jen pozor, proměnná v následujícím příkladu bude střídat různé datové typy a podle toho s ní musíme pracovat.

pole = [0, "ABC", 2.25, "c", (1,1)]
for p in pole:
  print(p)

Proměnná p projde všechny prvky pole, v našem případě různého datového typu: in, str, float, str a na závěr n-tici (tuple).

Podobně jako v předchozím příkladu, kdy jsme tvořili malou násobilku, můžeme i tyto cykly FOR vnořovat. Tentokrát pomocí stejného principu vytvoříme seznam dostupného ovoce s přívlastky (příklad si můžete spustit zde).

Příklad: šťavnaté ovoce

print("Jaké máme ovoce:")
ovoce = ["pomeranč","banán","meloun"]
jake = ["velký", "šťavnatý", "sladký", "plesnivý"]
for o in ovoce:
  for j in jake:
    print(j,o)

Buďte první, kdo vloží komentář

Přidejte odpověď