python for break continue loop
Python for
smyčku (angl. loop) využijete, když chcete opakovat (iterovat) část kódu.
Procházení list
Máme seznam 4 lidí. Pro každé jméno chceme zobrazit větu pomocí funkce print
.
První možností je, že použijeme copy+paste a pro každé jméno budeme mít jeden řádek kódu.
To je udržitelná metoda pouze v případě, že máme pár jmen. Co když se ale počet zvýší a my budeme muset pracovat se stovkou nebo tisícovkou jmen?
Pak bude přehlednější smyčka for
.
lide = ['Adam', 'Eva', 'Kain', 'Abel']
for clovek in lide:
print(f"{clovek} je boží!")
Adam je boží!
Eva je boží!
Kain je boží!
Abel je boží!
Všimněte se, že jsme pro jednotlivé elementy v seznamu lide
, použili jméno proměnné clovek
. To přispívá k lepší čitelnosti kódu.
Procházení dict
— klíče
K procházení (iterování) můžeme použít i další datové typy, které fungují jako iterátory - tzn. obsahují více hodnot, které může Python procházet. Jedním z nich je dictionary.
lide = {'Adam': 1, 'Eva': 2,
'Kain': 3, 'Abel': 4}
for clovek in lide:
print(f"{clovek} je boží!")
Adam je boží!
Eva je boží!
Kain je boží!
Abel je boží!
Python nám zobrazil pouze klíčové hodnoty (keys) z dictionary. Co kdybychom potřebovali zobrazit jak klíč (key), tak i hodnotu (value)? Tedy např. Adam je 1!
?
Procházení dict
— klíče a hodnoty
K procházení klíčů a hodnot v dictionary můžeme použít metodu items()
, která vrátí 2 hodnoty - klíč (key) a hodnotu (value).
lide = {'Adam': 1, 'Eva': 2,
'Kain': 3, 'Abel': 4}
for clovek, cislo in lide.items():
print(f"{clovek} je {cislo}!")
Adam je 1!
Eva je 2!
Kain je 3!
Abel je 4!
Proveď na konci — else
Smyčka for
může obsahovat volitelnou část else
, která se provede, když se seznam hodnot vyčerpá.
lide = {'Adam': 1, 'Eva': 2,
'Kain': 3, 'Abel': 4}
for clovek, cislo in lide.items():
print(f"{clovek} je {cislo}!")
else:
print(f"Prošel jsem všechny lidi. Byli celkem {len(lide)}.")
Adam je 1!
Eva je 2!
Kain je 3!
Abel je 4!
Prošel jsem všechny lidi. Byli celkem 4.
Přerušení smyčky — break
Ze smyčky také můžeme "vyskočit" pomocí break
a předčasně ji tak ukončit. Všimněte si, že se část else
neprovede.
lide = {'Adam': 1, 'Eva': 2,
'Kain': 3, 'Abel': 4}
for clovek, cislo in lide.items():
if clovek == 'Kain':
break
print(f"{clovek} je {cislo}!")
else:
# Tato část se neprovede kvůli použití break
print(f"Prošel jsem všechny lidi. Byli celkem {len(lide)}.")
Adam je 1!
Eva je 2!
Přeskočení iterace — continue
Pokud bychom chtěli Kaina pouze "přeskočit" a pokračovat ve smyčce dál, použijeme continue
.
lide = {'Adam': 1, 'Eva': 2,
'Kain': 3, 'Abel': 4}
for clovek, cislo in lide.items():
if clovek == 'Kain':
continue
print(f"{clovek} je {cislo}!")
else:
# Tato část se provede
print('Hotovo.')
Adam je 1!
Eva je 2!
Abel je 4!
Hotovo.