range() for-tsüklis

Range tsükli puhul omastab tsüklimuutuja (control variable) täisarvulisi väärtusi (integer) ja tavaliseima tsükli (vt variatsioone allpool) argumendiks on täisarvuline väärtus n. Tsüklimuutuja esimene väärtus on vaikimisi 0 ning viimane n - 1, vaikesammuks igal iteratsioonil on 1. Seega argumendi 3 puhul toimub 3 iteratsiooni, kus tsüklimuutuja väärtusteks on 0, 1, 2. Kui soovitakse itereerida üle jada elementide (nt järjend, sõne), on tsüklimuutuja jadas mingile elemendile vastav indeks, mille abil saab pöörduda elemendi poole. Tihti kasutatakse sellisel juhul len() funktsiooni, et tsükli argumendiks anda vastava jada pikkus. Range tsüklit kasutatakse enamasti olukordades, kus on kasutaja jaoks oluline nii jadas oleva elemendi väärtus kui ka tema indeks või soovitakse itereerides hüpata üle osade elementide (kasutades tsükli sammu), jättes need vahele.

Omadused:

  • Jada puhul on nii element kui ka tema paiknemine jadas (indeks) kättesaadavad.

  • Tsüklimuutuja (control variable) omastab täisarvulise väärtuse (jada puhul indeks).

  • Saab itereerida üle kõikide jada elementide.

  • Saab itereerida üle jada elementide, jättes osad vahele (kasutades sammu).

  • Ei saa itereerida üle järjestamata jadade (nt hulk) või indekseerimata andmestruktuuride (nt sõnastik) elementide.

  • Võimalik opereerida mitme jadaga samaaegselt (ühe tsükliga).

Süntaks:
for control_variable in range(statement):
    # Your code

Kus control_variable on vabalt valitav tsüklimuutuja nimi ning statement täisarvuline väärtus, milleni soovitakse itereerida (mitte kaasaarvatud).

Vaata ka alljärgnevat videot range() funktsiooni kohta:

Range tsükkel, mis alustab vaikimisi lugemist 0-st etteantud piirarvuni 3 (mitte kaasaarvatud) ning kasutab vaikesammu 1:

for i in range(3):
    print(i)

Antud tsükkel väljastaks väärtused 0, 1, 2.

Range tsükkel, mis väljastab sõnes vastaval indeksil oleva tähemärgi:
some_string = "Range"
for i in range(len(some_string)):  # Same as range(5)
    print(some_string[i])

# R
# a
# n
# g
# e
Range tsükkel, mis liidab kokku erinevates järjendites samal indeksil olevad sõned ja väljastab need:
car_makes = ["Audi", "Volkswagen", "Toyota"]
car_models = ["A4", "Golf", "Corolla"]
for i in range(len(car_makes)):
    print(car_makes[i] + " " + car_models[i])

# Audi A4
# Volkswagen Golf
# Toyota Corolla
Kui soovime määrata tsükli vahemikku, oleks sellele vastav süntaks:
for variablename in range(start_point, end_point):
    # Your code
Range tsükkel, mille muutuja i omastab väärtusi vahemikus 5-10 (mitte kaasaarvatud) ning kasutab vaikesammu 1:
for i in range(5, 10):
    print(i)

Antud tsükkel väljastaks väärtused 5, 6, 7, 8, 9.

Kui soovime määrata tsükli sammu, siis peab olema määratud ka vahemik ning vastav süntaks oleks
for some_variable in range(start_point, end_point, step):
    # Your code
Range tsükkel, mille muutuja i omastab väärtusi vahemikus 4-10 (mitte kaasaarvatud) ning kasutab määratud sammu 2:
for i in range(4, 10, 2):
    print(i)

Antud tsükkel väljastaks väärtused 4, 6, 8.

Range tsükkel, mille muutuja i omastab väärtusi vahemikus 12-6 (mitte kaasaarvatud) ning kasutab määratud sammu -2:
for i in range(12, 6, -2):
    print(i)

Antud tsükkel valjastaks väärtused 12, 10, 8.