range() în Python

Funcții încorporate Python 3.0+

Generează un șir de numere întregi, folosit mai ales în bucle for.

Sintaxă
range(stop)
range(start, stop[, pas])

Ce face range()

range(5) produce numerele 0, 1, 2, 3, 4: începe de la 0 și se oprește înainte de stop. Cu doi parametri alegi începutul, iar al treilea este pasul, care poate fi și negativ.

range nu ține toate numerele în memorie, ci le calculează la nevoie, deci range(1_000_000_000) nu ocupă mai mult decât range(10). Pentru a vedea numerele, transformă-l în listă cu list().

Parametri

Parametru Descriere
start Opțional. Primul număr. Implicit 0.
stop Numărul la care se oprește. Nu este inclus în rezultat.
pas Opțional. Diferența dintre două numere consecutive. Implicit 1. Nu poate fi 0.

Ce returnează

Un obiect range, care poate fi parcurs, indexat și măsurat cu len().

Exemple

Exemplul 1: Forme de bază

print(list(range(5)))
print(list(range(2, 8)))
print(list(range(0, 20, 5)))
print(list(range(10, 0, -3)))

Rezultat

[0, 1, 2, 3, 4]
[2, 3, 4, 5, 6, 7]
[0, 5, 10, 15]
[10, 7, 4, 1]

Exemplul 2: În bucla for

for luna in range(1, 4):
    print(f"Luna {luna}: plata ratei")

Rezultat

Luna 1: plata ratei
Luna 2: plata ratei
Luna 3: plata ratei

Exemplul 3: Operații pe range

r = range(0, 100, 10)
print(len(r), r[3], r[-1])
print(50 in r, 55 in r)
print(sum(range(1, 101)))

Rezultat

10 30 90
True False
5050

Greșeli frecvente

  • Te aștepți ca range(1, 10) să includă 10. Limita de sus nu este inclusă; scrie range(1, 11).
  • Dai un număr cu zecimale: range(0, 1, 0.1) dă TypeError. range lucrează doar cu întregi.

Comenzi înrudite

  • for: Parcurge, pe rând, fiecare element dintr-o listă, text, dicționar sau alt obiect iterabil.
  • enumerate(): Parcurge o colecție și dă, pentru fiecare element, și poziția lui.
  • len(): Returnează numărul de elemente dintr-o colecție sau numărul de caractere dintr-un text.
  • list (liste): Lista este o colecție ordonată și modificabilă de elemente, scrisă între paranteze drepte.