4. diel - Cykly v Pythone, funkcia range () a výraz pass
V predchádzajúcom kvíze, Kvíz - Premenné, podmienky, dátové typy v Pythone, sme si overili nadobudnuté skúsenosti z predchádzajúcich lekcií.
V minulej lekcii, Kvíz - Premenné, podmienky, dátové typy v Pythone , sme si ukázali vetvenia, boolovské hodnoty a
veľa ďalšieho. Dnes si v tutoriálu ukážeme ako na cykly v Pythone, funkciu
range()
a výraz pass
.
Ako už slovo cyklus napovie, niečo sa bude opakovať. Keď chceme v
programe niečo urobiť 100x, určite nebudeme písať pod seba 100x ten istý
kód, ale vložíme ho do cyklu. Máme dva druhy cyklov - cyklus
while
a cyklus sa syntaxou for..in
. Samozrejme si
ukážeme praktické príklady.
while
Cyklus while
je najjednoduchšie cyklus v Pythone, jeho syntax
je nasledujúca:
while podmienka: blok_příkazů else: blok_příkazů
Blok while
pokračuje vo vykonávaní príkazov tak dlho, kým
platí podmienka. Ak podmienka neplatí, vykoná sa nepovinný blok
else
. Blok else
sa ale nevykoná v prípade,
že sa z cyklu vyskočí napr. Príkazy break
(ukážeme si za
chvíľu) alebo return
(ukážeme si v ďalšej lekcii).
Teraz si skúsime vypísať čísla od jednej do desiatich. Otvorte si interaktívne konzolu Pythone, kód je nasledujúci:
{PYTHON}
cislo = 1
while (cislo <= 10):
print(cislo)
cislo = cislo + 1 #zvýšime číslo o jednu - inak by cyklus nikdy neskončil
{/PYTHON}
výsledok:
Konzolová aplikácia
1
2
3
4
5
6
7
8
9
10
Tu je príklad vypísanie párnych čísel:
{PYTHON}
print("Program vypíše všetky párne čísla.")
maximum = int(input("Zadajte maximálnu číslo: "))
cislo = 0
while (cislo <= maximum):
if (cislo % 2 == 0): #číslo je párne
print(cislo)
cislo = cislo + 1
input("\nProgram ukončíte stlačením ľubovoľného klávesu...")
{/PYTHON}
Do bloku while
môžeme pridať aj príkazy break
a
continue
. Príkaz break
z cyklu vyskočí,
continue
v cykle skočí na začiatok bloku príkazov.
for
... in
Cyklus for...in
má syntax nasledujú:
for premenná in iterovatelný_objekt: blok_příkazů else: blok_příkazů
Premennú určite všetci poznáte Iterovatelný objekt je napríklad reťazec. Ďalej for podporuje aj
príkazy continue
a break
.
Cvičenie z minulej lekcie si tým pádom môžeme zjednodušiť:
{PYTHON}
print("Program zistí či dané slovo obsahuje samohlásky.")
slovo = input("Zadajte 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 napísať aj program pre zistenie počtu samohlások a spoluhlások v slove:
{PYTHON}
print("Program zistí z čoho sa skladá slovo.")
slovo = input("Zadajte 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ások", samohlasky)
print("spoluhlások", souhlasky)
print("čísel", cisel)
print("ostatných znakov...", ostatni)
input("\nAplikáciu ukončíte stlačením ľubovoľného klávesu...")
{/PYTHON}
Takto aplikácie vyzerá:
Konzolová aplikácia
Program zistí z čoho sa skladá slovo.
Zadajte slovo: abeceda100-
abeceda100- má:
samohlások 4
spoluhlások 3
čísel 3
ostatných znakov... 1
Aplikáciu ukončíte stlačením ľubovoľného klávesu...
range()
Ďalšie iterovatelný objekt nám poskytne funkcie range()
. Tá
vracia čísla vygenerovaná funkcií.
Syntaxou je niekoľko:
range(n)
- vráti čísla od nuly don-1
range(m, n)
- vráti čísla odm
don-1
range(m, n, i)
- vráti čísla odm
a každé ďalšiei
-te číslo don-1
Príklady:
Konzolová aplikácia
>>> 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
Kľúčové slovo Pythone pass
sa používa v podmienkach (alebo
kdekoľvek inde), pričom znamená, že daná časť kódu nič nerobí.
Príklad:
print("Dotieravá aplikácie") pokracovat = True while pokracovat: slovo = input("\nNapíšte Python pre ukončenie: ") if (slovo == "Python" or slovo == "python"): print("\nSlovo zadané!") pokracovat = False else: pass # nič sa nestane input("\nAplikáciu ukončíte stlačením ľubovoľného klávesu...")
Kalkulačka
Teraz si skúsime vylepšiť našej kalkulačku. Program nám funguje, ale kalkulačka je len na "jedno" použitie. Ak chceme zadať ďalší príklad, musíme program spustiť znova. Preto si teraz kalkulačku mierne vylepšíme jedným cyklom a podmienkou Hlavná časť kódu kalkulačky bude uzavretá v cykle, ktorý sa bude opakovať kým používateľ kalkulačku neukončí.
Tu je kód kalkulačky:
{PYTHON}
print("Kalkulačka\n")
pokracovat = True
while pokracovat:
prvni_cislo = int(input("Zadajte prvé číslo: "))
druhe_cislo = int(input("Zadajte druhé číslo: "))
print("1 - sčítanie")
print("2 - odčítanie")
print("3 - násobenie")
print("4 - delenie")
print("5 - umocňovanie")
cislo_operace = int(input("Zadajte číslo operácie: "))
if cislo_operace == 1:
print("Ich súčet je:", prvni_cislo + druhe_cislo)
elif cislo_operace == 2:
print("Ich rozdiel je:", prvni_cislo - druhe_cislo)
elif cislo_operace == 3:
print("Ich súčin je:", prvni_cislo * druhe_cislo)
elif cislo_operace == 4:
print("Ich podiel je:", prvni_cislo / druhe_cislo)
elif cislo_operace == 5:
print(prvni_cislo, "na", druhe_cislo, "je:", prvni_cislo ** druhe_cislo)
else:
print("Neplatná voľba!")
nezadano = True
while nezadano:
odpoved = input("\nPrajete si zadať ďalší príklad? y / n: ")
if (odpoved == "y" or odpoved == "Y"):
nezadano = False
elif (odpoved == "n" or odpoved == "N"):
nezadano = False
pokracovat = False
else:
pass
input("\nStlačte ľubovoľný kláves...")
{/PYTHON}
A toto je pre tento diel všetko. V budúcej lekcii, Riešené úlohy k 4. lekcii Pythone , si ukážeme
prácu s n-ticami, zoznamy a funkcie zip()
a
len()
.
V nasledujúcom cvičení, Riešené úlohy k 4. lekcii Pythone, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 983x (2.27 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Python