Kubíkovo

Smyčka while

Smyčky nám umožňují opakování. V Pythonu jsou dva druhy. Nyní se podíváme na while.

Smyčka while se opakuje do té doby, dokud je podmínka, kterou ji dáme, pravdivá. Chová se vlastně stejně jako operátor if, akorát s tím rozdílem, že svůj vnitřní blok několikrát opakuje (if jej provede vždy jen jednou).

while 3 > 2:
    print("Vskutku, 3 je větší než 2")

Tento program by běžel nekonečně dlouho, protože naše podmínka, 3 > 2, bude vždy pravdivá. To typicky není něco, co chceme, proto se můžeme často setkat s následujícím příkladem:

n = 8
while n > 0:
    print(n)
    n = n - 1

Tento program vypíše čísla od 8 do 1. n je inicializováno na hodnotu 8. Smyčka se opakuje, dokud je n > 0 a protože v každé iteraci (opakování) smyčky n o jedna zmenšujeme, musí někdy doběhnout. A ejhle: jakmile n dosáhne hodnoty 0, nerovnost 0 > 0 neplatí, tudíž se smyčka znovu nespustí a program skončí. Podíváme se ještě na jeden příklad.

text = ""
while text != "exit":
    print(text)
    text = input("Jsem papoušek. Pokud chceš ukončit program, napiš 'exit'")

Všimneme si, že v obou předchozích příkladech inicializujeme hodnotu v podmínce ještě před samotnou smyčkou; jinak by program nemohl fungovat. Může se také stát, že se smyčka while nespustí vůbec:

a = 0
while a > 0:
    print(a)
    a = a - 1
print("Konec!")

Tento program vypíše pouze “Konec!