Python range() Funktsioon: ujuk, loend, tsükli näited
⚡ Nutikas kokkuvõte
Python range() on sisseehitatud funktsioon, mis genereerib muutumatu täisarvude jada algusväärtusest kuni lõppväärtuseni (välja arvatud), kasutades valikulist sammu juurdekasvu juhtimiseks.

Mis on Python Vahemik?
Python range() on sisseehitatud funktsioon, mis on saadaval koos Python Rohkem kui Python (3.x) ja see annab numbrite jada, mis põhineb antud algus- ja lõppindeksil. Kui algusindeksit ei anta, loetakse indeksiks 0 ja see suurendab väärtust 1 võrra kuni stoppindeksini.
Näiteks range(5) väljastab väärtused 0, 1, 2, 3, 4. The Python range() on väga kasulik käsk ja seda kasutatakse enamasti siis, kui peate itereerima, kasutades silmuse jaoks.
Süntaks
Funktsiooni range() süntaks on näidatud allpool:
range(start, stop, step)
parameetrid
- algus: (valikuline) Algindeks on täisarv ja kui seda pole antud, on vaikeväärtus 0.
- peatus: Stopp-indeks määrab väärtuse, mille juures vahemikufunktsioon peab peatuma. See on vahemikufunktsiooni kohustuslik sisend. Viimane väärtus on alati 1 võrra väiksem kui stopp-väärtus.
- samm: (valikuline) Sammu väärtus on arv, mille võrra tuleb vahemikus järgmist arvu suurendada; vaikimisi on see 1.
Tagastusväärtus
Tagastusväärtus on numbrijada antud algusest lõpuni.
Python range() Funktsioon ja ajalugu
Python range() on kasutusele võetud alates Python versioon 3; enne seda oli funktsioon xrange().
Nii range() kui ka xrange() funktsioone kasutatakse numbrijada loomiseks.
Järgnevalt on toodud erinevused funktsioonide range() ja xrange() vahel:
| vahemik () | xrange() |
|---|---|
| Vahemik () annab numbrite jada ja tagastab numbrite loendi. | Funktsioon xrange() annab generaatoriobjekti, mis tuleb väärtuste saamiseks tsüklis for-loop. |
| Vahemik () tagastab loendi. | xrange() tagastab generaatoriobjekti. |
| Meetod vahemik() kasutab rohkem mälu, kuna tagastatud loend tuleb salvestada võrreldes meetodiga xrange(). | Kuna xrange() tagastab generaatori objekti, ei anna see väärtusi koheselt ja väärtuste saamiseks tuleb seda kasutada for-tsükli sees. |
| Mälu kasutamine on suurem, seega on koodi täitmine tohutu andmekogumiga töötamisel aeglane. | Koodi täitmine on kiirem, kasutades xrange(). |
Vahemiku () kasutamine
See näide näitab, kuidas printida väärtusi vahemikus 0–9, kasutades vahemikus().
Vahemikus kasutatav väärtus on 10, seega väljund on 0 1 2 3 4 5 6 7 8 9.
Kuna algust ei ole antud, loetakse alguseks 0 ja viimane väärtus antakse kuni 9-ni. Viimane väärtus on alati 1 võrra väiksem kui antud väärtus, st stop-1.
for i in range(10): print(i, end =" ")
Väljund:
0 1 2 3 4 5 6 7 8 9
Start ja stop in range() kasutamine
Koodis on algväärtus 3 ja lõppväärtus 10. Siin on algusindeks 3, seega numbrijada algab 3-st kuni lõppväärtuseni. Jada viimane väärtus on 1 võrra väiksem kui lõppväärtus, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
Väljund:
3 4 5 6 7 8 9
Start, stop ja step kasutamine
Algusväärtus on 3, seega numbrijada algab 3-st. Lõppväärtus on 10, seega numbrijada peatub (10-1) juures, st 9 juures. Samm on 2, seega iga jada väärtust suurendatakse 2 võrra. Kui sammu väärtust ei anta, on sammu väärtuseks vaikimisi 1.
for i in range(3, 10, 2): print(i, end =" ")
Väljund:
3 5 7 9
Siiani oleme näinud, kuidas funktsioon range() annab antud stop-väärtuse jaoks suurendatud väärtuse. Proovime nüüd näidet antud vahemiku vähendatud väärtuse saamiseks.
Vahemiku väärtuste suurendamine positiivse sammuga
Parameetrit step funktsioonis range() saab kasutada väärtuste suurendamiseks või vähendamiseks. Vaikimisi on see positiivne väärtus, 1. Seega annab see alati suurendatud väärtused.
Sammu väärtus peab olema positiivne, kui soovite väljundina inkrementeeritud väärtusi.
for i in range(1, 30, 5): print(i, end =" ")
Väljund:
1 6 11 16 21 26
Reverse Vahemik: väärtuste vähendamine negatiivse sammuga
Funktsiooni range() parameetrit step negatiivse väärtusega saab kasutada vähendatud väärtuste saamiseks. Allolevas näites on sammu väärtus negatiivne, seega väljundit vähendatakse antud vahemiku väärtusest.
for i in range(15, 5, -1): print(i, end =" ")
Väljund:
15 14 13 12 11 10 9 8 7 6
Algväärtus on 15, stoppväärtus on 5 ja sammu väärtus on negatiivne arv, st -1. Ülaltoodud sisendite korral vähendab funktsioon range() väärtust alates 15-st kuni stoppväärtuseni, kuid siin on erinevus selles, et viimane väärtus on stopp + 1.
Ujuvate numbrite kasutamine Python vahemik ()
Töötame nüüd vahemiku () kallal, kasutades ujukoma numbreid.
Näide:
for i in range(10.5): print(i, end =" ")
Ülaltoodud näites oleme kasutanud stopp-väärtust 10.5.
Väljund on:
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python annab vea, kuna funktsioon range() ei toeta ujukomaarve starti, stopi ja step'i jaoks.
For-loopi kasutamine koos Python vahemik ()
Selles näites kasutame arvumassiivi ja vaatame, kuidas massiivi for-tsükli sees range() abil itereerida.
Näide:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Väljund:
MysqlMongodb PostgreSQL Firebase
Ülaltoodud näites kasutasime stopp-väärtusena len(arr_list). For-tsükkel itereerib stopp-väärtuseni, st massiivi pikkuseni, mis on 4, kuna arr_list-is on neli elementi. Algusväärtus on 0 ja samm on 1, seega väärtused algavad 0-st ja lõpevad 3-ga, st massiivi pikkus on -1, mis tähendab, et 4 -1 = 3.
Kasutamine Python range() loendina
Selles näites näete, kuidas kasutada vahemiku väljundit loendina.
Näide:
print(list(range(10)))
Väljund:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Näete, et väljund on loendivormingus. Ei olnud vaja tsüklit vahemikus() ja kasutades list() meetodit, saime väljundi otse vahemikust loendivormingusse teisendada.
Märkide kasutamine vahemikus python range()
Seni oleme kasutanud täisarve vahemikus python range(). Samuti oleme näinud, et ujukoma numbreid Pythoni vahemikus ei toetata. Proovime vaadata väljundit selle kohta, mis juhtub, kui kasutame märke.
Näide:
for c in range ('z'):
print(c, end =" ")
Väljund:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
See annab vea, öeldes, et stringi ei saa tõlgendada täisarvuna.
Tähestiku loendi saamiseks saate koodi kohandada ja saada soovitud väljundid allpool näidatud kujul:
Näide:
def get_alphabets(startletter, stopletter, step):
for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
yield chr(c)
print(list(get_alphabets("a", "h", 1)))
Väljund:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Vahemiku elementidele juurdepääsemine
Saate kasutada tsüklit for-loop väärtuste saamiseks vahemikust või kasutada indeksit, et pääseda juurde vahemiku() elementidele.
For-loopi kasutamine
Näide:
for i in range(6):
print(i)
Väljund:
0 1 2 3 4 5
Indeksi kasutamine
Indeksit kasutatakse vahemikuga, et saada sellel positsioonil saadaolev väärtus. Kui vahemiku väärtus on 5, saate algusväärtuse saamiseks kasutada vahemikku (5)[0] ja järgmise väärtuse vahemikku (5)[1] jne.
Näide:
startvalue = range(5)[0]
print("The first element in range is = ", startvalue)
secondvalue = range(5)[1]
print("The second element in range is = ", secondvalue)
lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)
Väljund:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
List() kasutamine
See meetod prindib kõik elemendid vahemikust (). Kasutades list() tagastab see elemendid vahemikust() loendivormingus.
Näide:
print(list(range(10)))
Väljund:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
See annab antud vahemiku loendiväljundi.
Näide: hankige paarisarvud, kasutades vahemikus ()
Funktsioon range() annab sisendiks antud vahemikust paarisarvude loendi. Funktsiooni range() parameetrid on: start on 2, stop on 20 ja step on 2, seega väärtused suurenevad 2 võrra ja tulemuseks on paarisarvud kuni stop-2-ni.
Näide:
for i in range(2, 20, 2): print(i, end =" ")
Väljund:
2 4 6 8 10 12 14 16 18
Kahe vahemiku () väljundite ühendamine
Selles näites ühendame kaks range() funktsiooni itertools mooduli chain() funktsiooni abil.
Näide:
from itertools import chain print("Merging two range into one") frange =chain(range(10), range(10, 20, 1)) for i in frange: print(i, end=" ")
Väljund:
Merging two range into one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Vahemiku () kasutamine koos NumPyga
NumPy moodulil on funktsioon `grange()`, mis töötab ja annab sarnase väljundi nagu funktsioon `range()`. `grange()` võtab vastu samu parameetreid kui `range().
süntaksit:
arange(start, stop, step)
NumPy-ga töötamiseks järgige alltoodud samme.
Samm 1: NumPy mooduli importimine
import numpy
Kui käivitamise ajal kuvatakse tõrge, mis ütleb, et numpy moodulit ei leitud, peate mooduli installima 2. sammus näidatud viisil.
Samm 2: NumPy installimine
pip install numpy
Samm 3: NumPy abil arange() töönäide
import numpy as np for i in np.arange(10): print(i, end =" ")
Väljund:
0 1 2 3 4 5 6 7 8 9
Ujukoma numbrid NumPy arange() abil
Ujukomajada pole võimalik saada funktsiooni range() abil, kuid see on võimalik funktsiooni NumPy arange() abil.
Näide:
Soovitud vahemik on 0.5 kuni 1.5. Väärtust suurendatakse 0.2 võrra.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Väljund:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Saadud väljund on veidi veider; mõned ujukomaarvud kuvatakse 16 kümnendkoha täpsusega. See on tingitud kümnendmurdude kahendvormingus talletamise keerukusest. Vajadusel saate väärtusi ka ümardada ja piirata neid vajalike kümnendkohtadeni.
