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ă; scrierange(1, 11). - Dai un număr cu zecimale:
range(0, 1, 0.1)dăTypeError.rangelucrează 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.