Martin Svoboda

Martin Svoboda - Blog

Cykly 1: Úvod


V této části se naučíš poslední ze základních konceptů v programování. Doposud jsme tvořili programy, které se vykonávaly postupně řádek po řádku. Poté jsme přidali možnost větvení, což umožnilo přeskakovat některé části kódu. Při programování však často potřebujeme určité úlohy opakovat vícekrát. To znamená vrátit se v kódu zpět. A přesně to umění cykly, které obalují tento proces. Pro nás to znamená, že některé části kódu provedou opakovaně bez nutnosti jejich opakovaného psaní několikrát za sebou.

Příklad: Hra s hádáním čísla

Pojďme si připomenout jednoduchou hru na hádání čísla:

# hra hádání čísla

import random # importujeme modul random - pro generování náhodných čísel
tajne_cislo = random.randint(1, 10) # vygenerujeme náhodné číslo od 1 do 10

print("Myslím si číslo od 1 do 10. Uhádneš ho?")
print("Máš 3 pokusy.")

pokus = 0

# pokus 1
pokus += 1
tip = int(input(f"{pokus}. pokus: "))
if tip == tajne_cislo:
    print(f"Správně! Uhádl jsi to na {pokus}. pokus.")
    exit() # ukončení programu

# pokus 2
pokus += 1
tip = int(input(f"{pokus}. pokus: "))
if tip == tajne_cislo:
    print(f"Správně! Uhádl jsi to na {pokus}. pokus.")
    exit() # ukončení programu

# pokus 3
pokus += 1
tip = int(input(f"{pokus}. pokus: "))
if tip == tajne_cislo:
    print(f"Správně! Uhádl jsi to na {pokus}. pokus.")
    exit() # ukončení programu

V tomto příkladu má hráč tři pokusy na uhádnutí tajného čísla. Všimni si, že kód pro první, druhý a třetí pokus je téměř stejný. Tento kód musíme psát třikrát, abychom dosáhli tří pokusů. S pomocí cyklů však můžeme použít tento stejný kus kódu pouze jednou.

Na diagramu níže můžeme vidět rozdíl mezi kódem s cyklem a bez něj:

Porovnání kódu s cyklem a bez něj

Barevně jsou zvýrazněny stejné části. Cyklus se zakresluje stejně jako podmínka, ale s jedním rozdílem: po provedení bloku kódu se cyklus vrací na začátek a provádí se znovu, dokud není splněna podmínka. Z diagramu je myslím dobře vidět proč se cyklům říká “cykly” 🙂

Proč používat cykly?

Použití cyklů má mnoho výhod, například:

  • Zpracování seznamu položek: Iterace přes každý prvek v seznamu a provedení operace na každém z nich.
  • Opakování úlohy: Provádění operace, dokud není splněna určitá podmínka.
  • Provádění akce určitý početkrát: Například tisk určitého textu desetkrát.

Typy cyklů v Pythonu

V Pythonu existují dva hlavní typy cyklů:

  1. Cyklus while: Provádí blok kódu, dokud je splněna určitá podmínka. Tento typ cyklu je užitečný, když nevíme předem, kolikrát bude potřeba blok kódu provést.

  2. Cyklus for: Používá se k iteraci posloupnosti (procházení prvků v posloupnosti), jako jsou seznamy (např. [ “jablko”, “hruška”, “broskev” ]), řetězce (např. “Python”), nebo i jen jednoduché rozsahy čísel (např. “1 2 3 4 5”). Tento cyklus je ideální, když chceme projít všechny prvky nějaké struktury nebo provést operaci u které známe počet opakování.

Cykly mohou náš kód výrazně zjednodušit a zefektivnit. Vyžadují však pečlivé zacházení, abychom se vyhnuli běžným chybám, jako jsou nekonečné cykly, které nikdy neskončí.

V dalších kapitolách se podíváme na to, jak používat for a while cyly v různých situacích a jak se vyhnout běžným chybám při jejich použití. Připravte se na to, že na konci této části budete schopni efektivně využívat cykly ve svých programech!

Kvíz

Kolik se bude rovna a na konci levého a pravého diagramu?

Porovnání kódu s cyklem a bez něj
1. Levý diagram:
Kolik se bude rovna a na konci levého diagramu?
a=2, Protože: na začtku je a = 1, následují podmínka, která je splněná, a<5. A tak a += 1 vede k a = 2.
2. Pravý diagram:
Kolik se bude rovna a na konci pravého diagramu?
a=5, Protože: na začtku je a = 1, následují cyklus s podmínkou a<5. Cyklus se provede 4x, protože a se zvětšuje o 1 v každém průchodu. Na konci cyklu je a = 5.