Lekce 11 - Cyklus while v Pythonu
V minulé lekci, Cyklus for v Pythonu, jsme se zabývali cyklem for
a
vytvořili jsme program na malou násobilku a mocninátor.
V dnešním Python tutoriálu se nejprve naučíme používat cyklus
while
a poté vylepšíme program kalkulačky.
Cyklus while
Cyklus while
funguje trochu jinak než cyklus for
.
Jednoduše opakuje příkazy v bloku, dokud platí podmínka. Syntaxe cyklu je
následující:
while (podminka): # blok příkazů
Pokud vás napadá, že prostřednictvím cyklu while
lze
udělat i cyklus for
, máte pravdu Cyklus
for
je vlastně
speciální případ cyklu while
. Cyklus
while
se ale používá na trochu jiné věci, neboť v jeho
podmínce často máme např. metodu vracející logickou
hodnotu True
/False
.
Příklady použití cyklu
Pojďme si udělat několik jednoduchých příkladů na procvičení cyklu
while
.
Řada
Pomocí cyklu while
bychom udělali číselnou řadu
následovně:
i = 1 while i <= 10: print(i, end=" ") i += 1
Zkontroluj, zda výstupy programu odpovídají předloze. S jinými texty testy neprojdou.
To ale není ideální použití cyklu
while
.
Kalkulačka
Jako další příklad si vezmeme naši kalkulačku z minulých lekcí. Opět
ji trochu vylepšíme, konkrétně o možnost zadat více příkladů. Program
tedy hned neskončí, ale zeptá se uživatele, zda si přeje spočítat další
příklad. Připomeňme si původní verzi kódu (tedy tu s konstrukcí
match
, ale klidně můžeme použít i verzi bez této konstrukce,
záleží na nás):
print("Vítejte v kalkulačce") a = float(input("Zadejte první číslo:")) b = float(input("Zadejte druhé číslo:")) print("Zvolte si operaci:") print("1 - sčítání") print("2 - odčítání") print("3 - násobení") print("4 - dělení") volba = int(input()) vysledek = 0.0 match volba: case 1: vysledek = a + b case 2: vysledek = a - b case 3: vysledek = a * b case 4: if b != 0: vysledek = a / b else: print("Nulou nelze dělit!") vysledek = "N/A" if volba > 0 and volba < 5: print(f"Výsledek: {vysledek}") else: print("Neplatná volba") print("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.")
Zkontroluj, zda výstupy programu odpovídají předloze. S jinými texty testy neprojdou.
Nyní vložíme téměř celý kód do cyklu while
. Naší
podmínkou bude, že uživatel zadá ano
. Budeme tedy kontrolovat
obsah proměnné pokracovat
. Zpočátku bude tato proměnná
nastavena na ano
, aby se program vůbec spustil. Poté do
proměnné necháme načíst uživatelovu volbu:
print("Vítejte v kalkulačce") pokracovat= "ano" while (pokracovat== "ano"): a = float(input("Zadejte první číslo:")) b = float(input("Zadejte druhé číslo:")) print("Zvolte si operaci:") print("1 - sčítání") print("2 - odčítání") print("3 - násobení") print("4 - dělení") volba = int(input()) vysledek = 0.0 match volba: case 1: vysledek = a + b case 2: vysledek = a - b case 3: vysledek = a * b case 4: if b != 0: vysledek = a / b else: print("Nulou nelze dělit!") vysledek = "N/A" if volba > 0 and volba < 5: print(f"Výsledek: {vysledek}") else: print("Neplatná volba") pokracovat = input("Přejete si zadat další příklad? [ano/ne]: ") print("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.")
Výstup programu:
Vylepšení kalkulačky:
Vítejte v kalkulačce
Zadejte první číslo: 12
Zadejte druhé číslo: 128
Zvolte si operaci:
1 - sčítání
2 - odčítání
3 - násobení
4 - dělení
1
Výsledek: 140
Přejete si zadat další příklad? [ano/ne]: ano
Zadejte první číslo: -10,5
Zadejte druhé číslo:
Naši aplikaci lze nyní používat vícekrát a je již téměř hotová.
Již toho umíme docela dost, začíná to být zábava, že?
V následujícím cvičení, Řešené úlohy k 10.-11. lekci Pythonu, si procvičíme nabyté zkušenosti z předchozích lekcí.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 194x (1.89 kB)
Aplikace je včetně zdrojových kódů v jazyce Python