11. diel - Cyklus while v Pythone
V predchádzajúcej lekcii, Cyklus for v Pythone, sme sa zaoberali cyklom
for a vytvorili sme program na malú násobilku a mocninátor.
V dnešnom Python tutoriáli sa najskôr naučíme
používať cyklus while a potom vylepšíme program
kalkulačky.
Cyklus while
Cyklus while funguje trochu inak ako cyklus for.
Jednoducho opakuje príkazy v bloku, kým platí podmienka. Syntax cyklu je
takáto:
while (condition): # commands
Pokiaľ vás napadá, že prostredníctvom cyklu while je
možné urobiť aj cyklus for, máte pravdu
Cyklus for je vlastne
špeciálny prípad cyklu while. Cyklus
while sa ale používa na trochu iné veci, pretože v jeho
podmienke často máme napr. metódu vracajúcu logickú
hodnotu True / False.
Príklady použitia cyklu
Poďme si urobiť niekoľko jednoduchých príkladov na precvičenie cyklu
while.
Rad
Pomocou cyklu while by sme urobili číselný rad takto:
i = 1
while i <= 10:
print(i, end = " ")
i += 1
To ale nie je ideálne použitie cyklu
while.
Kalkulačka
Ako ďalší príklad si vezmeme našu kalkulačku z predchádzajúcich
lekcií. Opäť ju trochu vylepšíme, konkrétne o možnosť zadať viac
príkladov. Program teda hneď neskončí, ale spýta sa používateľa, či si
praje spočítať ďalší príklad. Pripomeňme si pôvodnú verziu kódu (teda
tu s konštrukciou match, ale pokojne môžeme použiť aj verziu
bez tejto konštrukcie, záleží na nás):
print("Welcome to calculator!")
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print("Choose one of the following operations: ")
print("1 - addition")
print("2 - subtraction")
print("3 - multiplication")
print("4 - division")
option = int(input())
result = 0.0
match option:
case 1:
result = a + b
case 2:
result = a - b
case 3:
result = a * b
case 4:
if b != 0:
result = a / b
else:
print("Division by zero is not allowed!")
result = "N/A"
if option > 0 and option < 5:
print(f"Result: {result}")
else:
print("Invalid option")
print("Thank you for using calculator.")
Teraz budeme chcieť celý kód vložiť do cyklu while. Našou
podmienkou bude, že používateľ zadá yes, budeme teda
kontrolovať obsah premennej goOn. Spočiatku bude táto premenná
nastavená na hodnotu yes, aby sa program vôbec spustil, potom do
premennej necháme načítať používateľovu voľbu.
S takouto úpravou nám pomôže Copilot. Zadáme mu napríklad nasledujúci prompt: "Kód kalkulačky sa spustí iba raz. Pridaj preto celý kód do bloku while. Kým používateľ na otázku, či chce pokračovať, odpovedá "yes", kód bude ďalej pokračovať.".
Výstup od Copilota bude vyzerať podobne ako nižšie:
print("Welcome to calculator!") goOn= "yes" while (goOn == "yes"): a = float(input("Enter first number: ")) b = float(input("Enter second number: ")) print("Choose one of the following operations: ") print("1 - addition") print("2 - subtraction") print("3 - multiplication") print("4 - division") option = int(input()) result = 0.0 match option: case 1: result = a + b case 2: result = a - b case 3: result = a * b case 4: if b != 0: result = a / b else: print("Division by zero is not allowed!") result = "N/A" if option > 0 and option < 5: print(f"Result: {result}") else: print("Invalid option") goOn = input("Would you like to make another calculation? [yes/no]: ") print("Thank you for using calculator.")
Výstup AI sa môže líšiť. Názvy premenných môžu byť iné, podmienka cyklu môže byť napísaná inak alebo sa môže mierne líšiť celá štruktúra programu. To je v poriadku. Dôležité je, aby program fungoval správne, cyklus sa opakoval podľa vstupu používateľa a my sme rozumeli tomu, čo kód robí.
Výstup programu:
Calculator enhancement:
Welcome to calculator!
Enter first number: 12
Enter second number: 128
Choose one of the following operations:
1 - addition
2 - subtraction
3 - multiplication
4 - division
1
Result: 140
Would you like to make another calculation? [yes/no]: yes
Enter first number: -10,5
Enter second number:
Našu aplikáciu je možné teraz používať viackrát a je už takmer
hotová. Už toho vieme celkom dosť, začína to byť zábava, však? 
Zhrnutie lekcie
Cyklus while opakuje blok príkazov tak dlho, kým platí jeho
podmienka. Používame ho hlavne vtedy, keď dopredu nevieme, koľkokrát sa má
určitá časť programu opakovať. Podmienka sa musí počas programu vedieť
zmeniť, inak by cyklus bežal stále. V ukážke sme pomocou cyklu
while upravili kalkulačku tak, aby sa po výpočte spýtala, či
chceme zadať ďalší príklad. Program sa potom opakuje, kým používateľ
odpovedá napríklad yes.
V nasledujúcom cvičení, Riešené úlohy k 10.-11. lekcii Pythonu, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 51x (1.45 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Python
