Lekce 4 - Cykly v Pythonu, funkce range() a výraz pass
V předešlém cvičení, Řešené úlohy ke 3. lekci Pythonu, jsme si procvičili nabyté zkušenosti z předchozích lekcí.
V minulé lekci, Řešené úlohy ke 3. lekci Pythonu, jsme si ukázali větvení, booleovské hodnoty
a spoustu dalšího. Dnes si v tutoriálu ukážeme jak na cykly v Pythonu,
funkci range()
a výraz pass
.
Jak již slovo cyklus napoví, něco se bude opakovat. Když chceme v
programu něco udělat 100x, jistě nebudeme psát pod sebe 100x ten samý kód,
ale vložíme ho do cyklu. Máme dva druhy cyklů - cyklus while
a
cyklus se syntaxí for..in
. Samozřejmě si ukážeme praktické
příklady.
while
Cyklus while
je nejjednodušší cyklus v Pythonu, jeho syntaxe
je následující:
while podmínka: blok_příkazů else: blok_příkazů
Blok while
pokračuje v provádění příkazů tak dlouho,
dokud platí podmínka. Pokud podmínka neplatí, provede se nepovinný
blok else
. Blok else
se ale neprovede v
případě, že se z cyklu vyskočí např. příkazy break
(ukážeme si za chvíli) nebo return
(ukážeme si v další
lekci).
Teď si zkusíme vypsat čísla od jedné do desíti. Otevřete si interaktivní konzoli Pythonu, kód je následující:
{PYTHON}
cislo = 1
while (cislo <= 10):
print(cislo)
cislo = cislo + 1 #zvýšíme číslo o jednu - jinak by cyklus nikdy neskončil
{/PYTHON}
Výsledek:
Konzolová aplikace
1
2
3
4
5
6
7
8
9
10
Zde je příklad vypsání sudých čísel:
{PYTHON}
print("Program vypíše všechna sudá čísla.")
maximum = int(input("Zadejte maximální číslo: "))
cislo = 0
while (cislo <= maximum):
if (cislo % 2 == 0): #číslo je sudé
print(cislo)
cislo = cislo + 1
input("\nProgram ukončíte stisknutím libovolné klávesy...")
{/PYTHON}
Do bloku while
můžeme přidat i příkazy break
a
continue
. Příkaz break
z cyklu vyskočí,
continue
v cyklu skočí na začátek bloku příkazů.
for
...in
Cyklus for...in
má syntaxi následují:
for proměnná in iterovatelný_objekt: blok_příkazů else: blok_příkazů
Proměnnou jistě všichni znáte Iterovatelný objekt je například řetězec. Dále for podporuje i
příkazy
continue
a break
.
Cvičení z minulé lekce si tím pádem můžeme zjednodušit:
{PYTHON}
print("Program zjistí zda dané slovo obsahuje samohlásky.")
slovo = input("Zadejte slovo: ")
samohlasky = False
for znak in slovo:
if znak in "aáeéěiíoóuúůyý":
samohlasky = True
break
if samohlasky:
print(slovo, "obsahuje samohlásky.")
else:
print(slovo, "neobsahuje samohlásky.")
input("")
{/PYTHON}
Můžeme si napsat i program pro zjištění počtu samohlásek a souhlásek ve slově:
{PYTHON}
print("Program zjistí z čeho se skládá slovo.")
slovo = input("Zadejte slovo: ")
samohlasky = 0
souhlasky = 0
ostatni = 0
cisel = 0
for znak in slovo:
if znak in "aáeéěiíoóuúůyý":
samohlasky = samohlasky + 1
elif znak in "bcčdďfghjklmnňpqrřsštťvwxzž":
souhlasky = souhlasky + 1
elif znak in "0123456789":
cisel = cisel + 1
else:
ostatni = ostatni + 1
print(slovo, "má: ")
print("samohlásek", samohlasky)
print("souhlásek", souhlasky)
print("čísel", cisel)
print("ostatních znaků...", ostatni)
input("\nAplikaci ukončíte stisknutím libovolné klávesy...")
{/PYTHON}
Takto aplikace vypadá:
Konzolová aplikace
Program zjistí z čeho se skládá slovo.
Zadejte slovo: abeceda100-
abeceda100- má:
samohlásek 4
souhlásek 3
čísel 3
ostatních znaků... 1
Aplikaci ukončíte stisknutím libovolné klávesy...
range()
Další iterovatelný objekt nám poskytne funkce range()
. Ta
vrací čísla vygenerovaná funkcí.
Syntaxí je několik:
range(n)
- vrátí čísla od nuly don-1
range(m, n)
- vrátí čísla odm
don-1
range(m, n, i)
- vrátí čísla odm
a každé dalšíi
-té číslo don-1
Příklady:
Konzolová aplikace
>>> for cislo in range <4>:
... print<cislo>
...
0
1
2
3
>>> for cislo in range <2, 5>:
... print<cislo>
...
2
3
4
>>> for cislo in range <3, 10, 2>:
... print<cislo>
...
3
5
7
9
>>>
pass
Klíčové slovo Pythonu pass
se používá v podmínkách (nebo
kdekoliv jinde), přičemž znamená, že daná část kódu nic nedělá.
Příklad:
print("Dotěrná aplikace") pokracovat = True while pokracovat: slovo = input("\nNapište Python pro ukončení: ") if (slovo == "Python" or slovo == "python"): print("\nSlovo zadáno!") pokracovat = False else: pass # nic se nestane input("\nAplikaci ukončíte stisknutím libovolné klávesy...")
Kalkulačka
Nyní si zkusíme vylepšit naší kalkulačku. Program nám funguje, ale
kalkulačka je jen na "jedno" použití. Chceme-li zadat další příklad,
musíme program spustit znovu. Proto si nyní kalkulačku mírně vylepšíme
jedním cyklem a podmínkou
Hlavní část kódu kalkulačky bude uzavřena v cyklu, který se bude opakovat
dokud uživatel kalkulačku neukončí.
Zde je kód kalkulačky:
{PYTHON}
print("Kalkulačka\n")
pokracovat = True
while pokracovat:
prvni_cislo = int(input("Zadejte první číslo: "))
druhe_cislo = int(input("Zadejte druhé číslo: "))
print("1 - sčítání")
print("2 - odčítání")
print("3 - násobení")
print("4 - dělení")
print("5 - umocňování")
cislo_operace = int(input("Zadejte číslo operace: "))
if cislo_operace == 1:
print("Jejich součet je:", prvni_cislo + druhe_cislo)
elif cislo_operace == 2:
print("Jejich rozdíl je:", prvni_cislo - druhe_cislo)
elif cislo_operace == 3:
print("Jejich součin je:", prvni_cislo * druhe_cislo)
elif cislo_operace == 4:
print("Jejich podíl je:", prvni_cislo / druhe_cislo)
elif cislo_operace == 5:
print(prvni_cislo, "na", druhe_cislo, "je:", prvni_cislo ** druhe_cislo)
else:
print("Neplatná volba!")
nezadano = True
while nezadano:
odpoved = input("\nPřejete si zadat další příklad? y / n: ")
if (odpoved == "y" or odpoved == "Y"):
nezadano = False
elif (odpoved == "n" or odpoved == "N"):
nezadano = False
pokracovat = False
else:
pass
input("\nStiskněte libovolnou klávesu...")
{/PYTHON}
A toto je pro tento díl vše. V příští lekci, Řešené úlohy k 4. lekci Pythonu, si ukážeme
práci s n-ticemi, seznamy a funkce zip()
a len()
.
V následujícím cvičení, Řešené úlohy k 4. lekci Pythonu, si procvičíme nabyté zkušenosti z předchozích lekcí.
Stáhnout
Staženo 515x (745 B)
Aplikace je včetně zdrojových kódů v jazyce python
Komentáře


Zobrazeno 10 zpráv z 108. Zobrazit vše