NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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ě:

Klikni pro editaci
  • 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):

    Klikni pro editaci
    • 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

       

      Jak se ti líbí článek?
      Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
      Předchozí článek
      Cyklus for v Pythonu
      Všechny články v sekci
      Základní konstrukce jazyka Python
      Přeskočit článek
      (nedoporučujeme)
      Řešené úlohy k 10.-11. lekci Pythonu
      Článek pro vás napsal Karel Zaoral
      Avatar
      Uživatelské hodnocení:
      636 hlasů
      Karel Zaoral
      Aktivity