Jednou z užitočných funkcií v Pythone je funkcia range()
. V tomto článku sa pozrieme na to, ako používať funkciu range() a dokonca si ukážeme, ako vytvoriť vlastnú verziu tejto funkcie.
Čo je funkcia range():
Funkcia range() v Pythone generuje postupnosť čísel. Má tri hlavné formy použitia:
- range(stop) – generuje postupnosť čísel od 0 po „stop-1“. Ak je stop záporné číslo alebo nula, funkcia nevygeneruje žiadne čísla.
- range(start, stop) – generuje postupnosť čísel od „start“ po „stop-1“. Ak je start väčší alebo rovný ako stop, funkcia nevygeneruje žiadne čísla.
- range(start, stop, step) – generuje postupnosť čísel od „start“ po „stop-1“ so zadaným krokom „step“. Ak je step rovný nule, funkcia nevygeneruje žiadne čísla.
Upozornenie: Pri použití funkcie range() je dôležité pamätať na to, že argumenty treba písať v stanovenom poradí a nemôžu sa volať menom, pretože ide o built-in funkciu prebratú z jazyka C.
Príklady použitia funkcie range():
# Príklad 1: Použitie s jedným argumentom
for i in range(5):
print(i) # Vypíše čísla od 0 do 4
# Príklad 2: Použitie s dvoma argumentmi a pomenovanými argumentami
for i in range(2, 6):
print(i) # Vypíše čísla od 2 do 5
# Príklad 3: Použitie s troma argumentmi
for i in range(1, 10, 2):
print(i) # Vypíše nepárne čísla od 1 do 9
Odporúčame pozrieť dokumentáciu k príkazu range:
https://docs.python.org/3/library/stdtypes.html?highlight=range#range
a porovnať s touto dokumentáciou:
https://www.w3schools.com/python/ref_func_range.asp
Ako vytvoriť vlastnú range funkciu:
Môžete si vytvoriť vlastnú verziu funkcie range() s preddefinovanými hodnotami pre všetky jej parametre. Pri volaní tejto vlastnej funkcie bude možné meniť poradie pomenovaných argumentov, prípadne vynechať hociktorý argument.
def my_range(start=0, stop=1, step=1):
# Kontrola pre nulový krok
if step == 0:
raise ValueError("Krok nesmie byť nulový.")
result = []
iterator = start
if step > 0:
while iterator < stop:
result.append(iterator)
iterator += step
else:
while iterator > stop:
result.append(iterator)
iterator += step
return result
# Použitie vlastnej range funkcie
for i in my_range(stop=10, step=2, start=1 ):
print(i) # Vypíše nepárne čísla od 1 do 9
print(my_range(10,1,1)) # Vypíše prázdny zoznam
print(my_range(-1,-10,1)) # Vypíše prázdny zoznam
Záver:
Vytvorenie vlastnej verzie tejto funkcie môže byť skvelým spôsobom, ako sa hlbšie ponoriť do programovania v Pythone.