range for reversed append map join f-string
Python funkce range
generuje sekvenci celých čísel (integer). Může mít jeden, dva nebo tři parametry.
Pro začátečníky v Pythonu může být matoucí, že parametr start
počáteční číslo zahrnuje (inclusive), kdežto parametr stop
konečné číslo nezahrnuje (exclusive). Vzhledem k tomu, že tato logika prostupuje celým Python, tak si nakonec zvyknou.
Třetí parametr step
může být kladné nebo záporné číslo, které je přičteno ke každému vygenerovanému číslu.
Projděte si následující příklady, které vydají za tisíc slov.
Jeden parametr - stop
Vygeneruje čísla od 0 až do 4 (stop - 1
).
# stop = 5
for cislo in range(5):
print(cislo)
0
1
2
3
4
Dva parametry - start
, stop
Vygeneruje čísla od 1 až do 4 (stop - 1
).
# start = 1, stop = 5
for cislo in range(1, 5):
print(cislo)
1
2
3
4
Tři parametry - start
, stop
, step
Vygeneruje čísla mezi 1 až 4. Ke každému přičte 2.
# start = 1, stop = 5, step = 2
for cislo in range(1, 5, 2):
print(cislo)
1
3
Sestupný range
Čísla mohou být generována i "obráceně", tedy sestupně.
for cislo in range(5, 0, -1):
print(cislo)
5
4
3
2
1
Pythonický sestupný range
"Pythonista" by předchozí příklad zapsal spíše s použitím funkce reversed
. Je to přehlednější.
for cislo in reversed(range(1,6)):
print(cislo)
5
4
3
2
1
Příklady
Příklad 1
Vypište všechna sudá čísla do 10.
# Využijeme f-string
for cislo in range(2, 11, 2):
print(f"Sudé číslo: {cislo}")
Sudé číslo: 2
Sudé číslo: 4
Sudé číslo: 6
Sudé číslo: 8
Sudé číslo: 10
Příklad 2
Vypište všechna lichá čísla do 10.
for cislo in range(1, 11, 2):
print(f"Liché číslo: {cislo}")
Liché číslo: 1
Liché číslo: 3
Liché číslo: 5
Liché číslo: 7
Liché číslo: 9
Příklad 3
Vypište do jednoho řádku čísla 1-5 nejdřív vzestupně a pak sestupně.
Očekáváný výsledek: 1,2,3,4,5,5,4,3,2,1
Zkuste přijít na řešení úkolu sami. Pokud nevíte, podívejte se na jeden ze způsobů řešení.
Řešení příkladu 3
Krok 1
Uložíme seznam čísel do listu.
rozsah = range(1, 6)
seznam_cisel = list()
for cislo in rozsah:
seznam_cisel.append(cislo)
for cislo in reversed(rozsah):
seznam_cisel.append(cislo)
Krok 2
Použijeme join
, abychom spojili všechny elementy do jednoho stringu, kde jsou hodnoty odděleny čárkou. Nezapomene také převést všechna čísla na string pomocí funkce map
.
vysledek = ','.join(map(str, seznam_cisel))
print(f"Výsledek: {vysledek}")
Výsledek: 1,2,3,4,5,5,4,3,2,1
Použité funkce a příkazy Pythonu
V tomto článku jsme použili následující funkce a příkazy Pythonu:
| Funkce | Info |
| :- | :- |
| range
| Generuje řadu celých čísel — dokumentace Pythonu. |
| for
| Smyčka - průchod jednotlivými elementy — dokumentace Pythonu. |
| reversed
| Obrátí pořadí řady — dokumentace Pythonu. |
| append
| Přidá element na konec pole — dokumentace Pythonu. |
| map
| Použije funkci na všechny elementy — dokumentace Pythonu. |
| join
| Spojí elementy do stringu — dokumentace Pythonu. |
| f-string
| Přehlednější formátování stringů — dokumentace Pythonu. |