10. diel - Cyklus while v Pythone
V minulej 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ále 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
nasledovná:
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
nasledovne:
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 minulých 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 vložíme takmer celý kód 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 yes
, aby sa program vôbec spustil. Potom do
premennej necháme načítať používateľovu voľbu:
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 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?
V nasledujúcom cvičení, Riešené úlohy k 9.-10. lekcii Pythona, 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é 0x (1002 B)
Aplikácia je vrátane zdrojových kódov v jazyku Python