Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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

 

Predchádzajúci článok
Cyklus for v Pythone
Všetky články v sekcii
Základné konštrukcie jazyka Python
Preskočiť článok
(neodporúčame)
Riešené úlohy k 9.-10. lekcii Pythona
Článok pre vás napísal Karel Zaoral
Avatar
Užívateľské hodnotenie:
2 hlasov
Karel Zaoral
Aktivity