Funkcia range() v Pythone

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:

  1. range(stop) – generuje postupnosť čísel od 0 po „stop-1“. Ak je stop záporné číslo alebo nula, funkcia nevygeneruje žiadne čísla.
  2. range(start, stop) – generuje postupnosť čísel od „start“ po „stop-1“. Ak je start väčší alebo rovný ako stop, funkcia nevygeneruje žiadne čísla.
  3. 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.