Python — funkce range

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.

Jste z oboru a chcete něco zajímavého sdělit našemu publiku?

LovelyData

Nenechávejte si to pro sebe!

Určitě máte co říct a byla by škoda, kdyby o tom nikdo nevěděl. Protože naši čtenáři chtějí být informováni o všem, co vytváří budoucnost.

Kontaktujte nás a určitě se domluvíme.

Potěšte svoji emailovou schránku

Data, umělá inteligence, automatizace a ještě mnohem víc. Technologie, které mění náš svět. To vše zdarma ve vašem emailu. Spam neposíláme a odhlásit se můžete kdykoliv.

© Colorbee, s.r.o.

Design by grafikli.cz

Používáme cookies pro lepší uživatelský zážitek. Používáním webu s tím vyjadřujete souhlas a zároveň potvrzujete, že jste se seznámil/a s Prohlášením o ochraně osobních údajů.

Fotografie: lektoři, grafikli.cz, icons8.com