Cvičení: For versus while

Každé cvičení má vlastní soubor ve složce lekce04-cyklus-while/02_for_vs_while/cviceni/. Otevři ho ve VS Code, doplň kód pod zadání a soubor spusť (Run). Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Cvičení 1

Soubor: cviceni/01_jaky_cyklus.py

Ke každému zadání si za pomlčku dopiš for, nebo while, a proč sis ho vybrala. Ptej se sama sebe: vím dopředu, kolikrát se to má zopakovat?

  1. Zatluč do prkna 10 hřebíků.

  2. Buš kladivem do hřebíku, dokud není úplně zatlučený.

  3. Zahřívej vodu, dokud se nezačne vařit.

  4. Házej mincí, dokud nepadne panna.

  5. Házej kostkou, dokud šestka nepadne potřetí.

  6. Zeptej se uživatelky na číslo a tolikrát hoď kostkou.

  7. Hoď kostkou a vypiš, co padlo.

  8. Vypiš sudá čísla od 0 do 100.

  9. Vypiš sudá čísla od 0 do čísla, které zadá uživatelka.

  10. Vypiš každé písmeno slova "Praha".

  11. Přidávej do košíku jablka, dokud košík neváží aspoň 2 kg.

  12. Projdi 30 odpovědí v testu a spočítej, kolik jich je správně.

Zobrazit řešeníSkrýt řešení

Tvoje zdůvodnění může být formulované jinak.

  1. for – hřebíků je deset, počet známe předem.

  2. while – kolik ran bude potřeba, dopředu nevíme.

  3. while – jak dlouho se voda bude vařit, dopředu nevíme.

  4. while – panna může padnout hned, nebo až po deseti hodech.

  5. while – šestky počítáme, ale kolik hodů na tři bude potřeba nevíme.

  6. for – jakmile uživatelka číslo zadá, počet opakování známe.

  7. žádný cyklus – hodíme jednou a vypíšeme, nic se neopakuje.

  8. for – čísla od 0 do 100 jsou daná, range(0, 101, 2).

  9. for – počet je daný zadaným číslem, jen ho neznáme při psaní kódu.

  10. for – procházíme text, počet písmen je daný.

  11. while – kolik jablek se do dvou kilo vejde, dopředu nevíme.

  12. for – odpovědí je třicet.

Cvičení 2

Soubor: cviceni/02_pismena_slova.py

Nejdřív rozhodni for/while a napiš si do komentáře proč, pak úlohu naprogramuj.

Vypiš všechna písmena slova "Python", každé na svůj řádek.

Zobrazit řešeníSkrýt řešení

Počet opakování známe (kolik má slovo písmen) -> for.

for pismeno in "Python":
    print(pismeno)

Cvičení 3

Soubor: cviceni/03_pin.py

Nejdřív rozhodni for/while a napiš si do komentáře proč, pak úlohu naprogramuj.

Ptej se na PIN tak dlouho, dokud uživatel nezadá "1234". Pak vypiš "Odemčeno!".

Zobrazit řešeníSkrýt řešení

Ptej se na PIN tak dlouho, dokud uživatel nezadá "1234". Kolikrát se splete dopředu nevíme -> while.

pin = input("Zadej PIN: ")
while pin != "1234":
    print("Špatný PIN.")
    pin = input("Zadej PIN: ")
print("Odemčeno!")

Cvičení 4

Soubor: cviceni/04_nasobky_tri.py

Nejdřív rozhodni for/while a napiš si do komentáře proč, pak úlohu naprogramuj.

Vypiš prvních deset násobků čísla 3 (3, 6, 9, ... 30).

Zobrazit řešeníSkrýt řešení

Deset opakování, počet známe -> for.

for cislo in range(3, 31, 3):
    print(cislo)

Jde to i bez kroku – vynásobit si to v cyklu sama:

for cislo in range(1, 11):
    print(cislo * 3)

Cvičení 5

Soubor: cviceni/05_cisla_do_zaporneho.py

Nejdřív rozhodni for/while a napiš si do komentáře proč, pak úlohu naprogramuj.

Načítej od uživatele čísla tak dlouho, dokud nezadá záporné číslo. Pak vypiš, kolik čísel stihl zadat.

Zobrazit řešeníSkrýt řešení

Kolik čísel zadá dopředu nevíme -> while.

kolik = 0
cislo = int(input("Zadej číslo: "))
while cislo >= 0:
    kolik = kolik + 1
    cislo = int(input("Zadej číslo: "))
print("Počet zadaných čísel před tím záporným:", kolik)

Cvičení 6

Soubor: cviceni/06_unikajici_voda.py

Nejdřív rozhodni for/while a napiš si do komentáře proč, pak úlohu naprogramuj.

V nádrži je 45 litrů vody a každou minutu z ní uteče 3 litry. Po každé minutě vypiš, kolik vody zbývá, a nakonec vypiš, po kolika minutách je nádrž prázdná.

Zobrazit řešeníSkrýt řešení

V nádrži je 45 litrů, každou minutu uteče 3 litry. Po každé minutě vypiš zbytek, nakonec počet minut. Kolikrát se cyklus zopakuje dopředu nevíme -> while.

voda = 45
minuty = 0
while voda > 0:
    voda = voda - 3
    minuty = minuty + 1
    print("Po", minuty, "minutách zbývá", voda, "litrů.")
print("Nádrž je prázdná po", minuty, "minutách.")

Zpět na téma: For versus while

Zdrojové soubory na GitHubu

Komentáře

Máš k této stránce dotaz nebo jsi našla chybu? Napiš to sem. Ke komentování je potřeba účet na GitHubu.