4.4 Cykly

 Často je potřeba, aby se určitá část programu opakovala. Takovou část programu nazýváme cyklus.

Rozlišují se dva typy cyklů:

- cyklus  while , kdy předem nevíme, kolikrát se bude cyklus opakovat

- cyklus  for , kdy dopředu víme, že cyklus musí proběhnout n krát

 

Cyklus while

Cyklus while používáme, jestliže o počtu opakování cyklu rozhoduje např. uživatel programu.

Syntaxe:

while podmínka :
    Příkazy, které se mají provést opakovaně
    musí být zapsány na řádky odsazené 4 mezerami.

Další řádek programu s příkazem
...

Práce programu s cyklem while:

1) Vyhodnotí podmínku za while, zda platí (True) nebo neplatí (False). Pokud pdmínka obsahuje proměnnou, hodnota do této proměnné musí být vložena před začátkem cyklu.
2) Jestliže podmínka platí (True), provede vnořené příkazy v těle podmínky a pak se vratí zpět ke kroku 1.
3) Jestliže podmínka neplatí (False), opustí cyklus while a pokračuje dalším příkazem.

Příklad:

print("Výpočet druhé mocniny")
pokracuj = "a"
while pokracuj == "a":
    x = float(input("napiš číslo: "))
    xx = x * x
    x = str(x)
    xx = str(xx)
    print("Druhá mocnina čísla", x, "je", xx)
    pokracuj = input("Jestli chceš zadat další číslo, napiš a: ")
    print()     # vloží prázdný řádek
print("Až budeš potřebovat najít další mocninu, jsem ti k službám!")
input()

 

Cyklus for

For cyklus se používá pro předem známý počet opakování cyklu.

Počet opakování cyku je zadán
- buď pomocí seznamu [ ], což je výčet hodnot proměnné uzavřený v hranatých závorkách, 
- nebo je počet opakování definován pomocí finkce range().

 

Syntaxe s použitím seznamu:

1) nejdříve se definuje seznam, tj. výčet hodnot proměnných: 
nazev_seznamu = [hodnoty seznamu oddělené čárkou, uzavřené do hranatých závorek]

2) zápis vlastního for cyklu:

for proměnná, která postupně nabývá hodnot ze seznamu in nazev_seznamu :

Příklad:
kamaradi = ["Pepa", "Lojza", "Ferda"]
print("Moji kamarádi jsou: "
for x in kamaradi:
    print(x)
print("... a ještě pár dalších.")

 

Syntaxe s použitím funkce range():

1) Význam a syntaxe funkce range()
range(n) - vrátí čísla od nuly do n-1
    range(4) vrátí čísla: 0, 1, 2, 3, tj. celkem 4 čísla počínaje od nuly

range(m, n) - vrátí čísla od m do n-1
    range(3, 8) vrátí čísla: 3, 4, 5, 6, 7

range(m, n, i) - vrátí čísla od m a každé další i-té číslo do n-1
    range(5, 16, 3) vrátí čísla 5, 8, 11, 14

2) zápis vlastního for cyklu:

for 

for proměnná, která postupně nabývá hodnot z range in range() :

Příklad:
opak = int(input("Zvol si velikost funkce range(): "))
for x in range(opak):
    print("Načtená hodnota range() v tomto cyklu je", x)
print("Funkce range() již další hodnotu neposkytla.")