Lekce 10 - Cyklus while v Pythonu
V minulé lekci, Cyklus for v Pythonu, jsme se zabývali cyklem for
a
vytvořili program na malou násobilku a mocninátor.
V dnešním Python tutoriálu se 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 lze přes cyklus while
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, často máme v jeho podmínce např. metodu vracející logickou
hodnotu True
/False
.
Příklady už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
To ale není ideální použití cyklu
while
.
Kalkulačka
Jako další si vezmeme naši kalkulačku z minulých lekcí a 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 (je to ta verze s konstrukcí
match
, ale klidně použijte i tu bez, záleží na vá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.")
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 ní
necháme načíst volbu uživatele:
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 9.-10. 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 74x (1.89 kB)
Aplikace je včetně zdrojových kódů v jazyce Python