Python range() Funksjon: Float, List, For loop Eksempler
โก Smart oppsummering
Python range() er en innebygd funksjon som genererer en uforanderlig sekvens av heltall fra en startverdi opp til, men ikke inkludert, en stoppverdi, ved hjelp av et valgfritt trinn for รฅ kontrollere รธkningen.

Hva er Python Omrรฅde?
Python range() er en innebygd funksjon tilgjengelig med Python fra Python (3.x), og den gir en tallsekvens basert pรฅ start- og stoppindeksen som er gitt. I tilfelle startindeksen ikke er gitt, regnes indeksen som 0, og den vil รธke verdien med 1 til stoppindeksen.
For eksempel vil range(5) sende ut verdiene 0, 1, 2, 3, 4. Python range() er en veldig nyttig kommando og brukes mest nรฅr du mรฅ iterere ved hjelp av en for slรธyfe.
syntax
Syntaksen til range()-funksjonen vises nedenfor:
range(start, stop, step)
Parametre
- begynne: (valgfritt) Startindeksen er et heltall, og hvis den ikke er gitt, er standardverdien 0.
- Stoppe: Stoppindeksen bestemmer verdien der omrรฅdefunksjonen mรฅ stoppe. Det er obligatorisk input til omrรฅdefunksjonen. Den siste verdien vil alltid vรฆre 1 mindre enn stoppverdien.
- steg: (valgfritt) Trinnverdien er tallet som det neste tallet i omrรฅdet mรฅ รธkes med; som standard er den 1.
Returverdi
Returverdien er en tallsekvens fra den gitte start-til-stopp-indeksen.
Python range() Funksjon og historie
Python range() er introdusert fra Python versjon 3; fรธr det var xrange() funksjonen.
Bรฅde range() og xrange() brukes til รฅ produsere en tallsekvens.
Fรธlgende er forskjellene mellom range() og xrange():
| omrรฅde() | xrange() |
|---|---|
| Range() gir tallrekkefรธlgen og returnerer en liste med tall. | xrange()-funksjonen gir et generatorobjekt som mรฅ slรธyfes i en for-lรธkke for รฅ fรฅ verdiene. |
| Range() returnerer en liste. | xrange() returnerer et generatorobjekt. |
| Range()-metoden bruker mer minne ettersom listen som returneres mรฅ lagres i forhold til xrange(). | Siden xrange() returnerer et generatorobjekt, gir det ikke verdier umiddelbart, og mรฅ brukes i en for-lรธkke for รฅ fรฅ verdiene. |
| Bruken av minne er mer, derfor er kodekjรธringen treg nรฅr man jobber med et stort datasett. | Kodekjรธringen er raskere ved รฅ bruke xrange(). |
Bruker range()
Dette eksemplet viser hvordan du skriver ut verdiene fra 0-9 ved รฅ bruke range().
Verdien som brukes i omrรฅdet er 10, sรฅ utdataene er 0 1 2 3 4 5 6 7 8 9.
Siden starten ikke er gitt, regnes starten som 0, og den siste verdien er gitt frem til 9. Den siste verdien er alltid 1 mindre enn den gitte verdien, dvs. stopp-1.
for i in range(10): print(i, end =" ")
Utgang:
0 1 2 3 4 5 6 7 8 9
Bruke start og stopp i rekkevidde()
I koden er startverdien 3, og stoppverdien er 10. Her er startindeksen 3, sรฅ tallrekkefรธlgen vil starte fra 3 til stoppverdien. Den siste verdien i sekvensen vil vรฆre 1 mindre enn stoppverdien, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
Utgang:
3 4 5 6 7 8 9
Bruker start, stop og step
Startverdien er 3, sรฅ tallrekkefรธlgen starter pรฅ 3. Stoppverdien er 10, sรฅ tallrekkefรธlgen stopper pรฅ (10-1), dvs. 9. Trinnet er 2, sรฅ hver verdi i sekvensen รธkes med 2. Hvis trinnverdien ikke er oppgitt, settes standardverdien for trinn til 1.
for i in range(3, 10, 2): print(i, end =" ")
Utgang:
3 5 7 9
Sรฅ langt har vi sett hvordan range()-funksjonen gir den รธkte verdien for den gitte stoppverdien. La oss nรฅ prรธve et eksempel for รฅ fรฅ den reduserte verdien i det gitte omrรฅdet.
รke verdiene i omrรฅdet ved hjelp av et positivt trinn
Parameteren step i range() kan brukes til รฅ รธke eller redusere verdiene. Som standard er den en positiv verdi, 1. Sรฅ den vil alltid gi inkrementerte verdier.
Trinnverdien mรฅ vรฆre positiv hvis du รธnsker inkrementerte verdier som utdata.
for i in range(1, 30, 5): print(i, end =" ")
Utgang:
1 6 11 16 21 26
Reverse Omrรฅde: Reduksjon av verdiene ved hjelp av negative trinn
Parameteren step med en negativ verdi i range() kan brukes til รฅ fรฅ dekrementerte verdier. I eksemplet nedenfor er step-verdien negativ, sรฅ utdataene vil bli dekrementert fra den gitte range-verdien.
for i in range(15, 5, -1): print(i, end =" ")
Utgang:
15 14 13 12 11 10 9 8 7 6
Startverdien er 15, stoppverdien er 5, og trinnverdien er et negativt tall, dvs. -1. Med inngangene ovenfor vil range()-funksjonen redusere verdien fra 15 og utover til den nรฅr stoppverdien, men her er forskjellen at den siste verdien vil vรฆre stopp + 1.
Bruke flytende tall i Python omrรฅde()
La oss nรฅ jobbe med omrรฅdet() ved รฅ bruke flyttall.
Eksempel:
for i in range(10.5): print(i, end =" ")
I eksemplet ovenfor har vi brukt stoppverdien 10.5.
Utgangen er:
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 gir en feilmelding fordi range()-funksjonen ikke stรธtter flyttall for start, stopp og trinn.
Bruker for-loop med Python omrรฅde()
I dette eksemplet skal vi bruke en array med tall og se hvordan vi itererer arrayet inne i en for-lรธkke ved hjelp av range().
Eksempel:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Utgang:
MysqlMongodb PostgreSQL Firebase
I eksemplet ovenfor har vi brukt len(arr_list) som stoppverdi. for-lรธkken vil iterere til stoppverdien, dvs. lengden pรฅ arrayet, som vil vรฆre 4, siden vi har fire elementer i arr_list. Startverdien vil vรฆre 0 og step vil vรฆre 1, sรฅ verdiene vil starte fra 0 og stoppe ved 3, dvs. lengden pรฅ arrayet -1, som betyr 4 -1 = 3.
Ved hjelp av Python range() som en liste
I dette eksemplet vil du se hvordan du kan bruke utdataene fra omrรฅdet som en liste.
Eksempel:
print(list(range(10)))
Utgang:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Du kan se at utgangen er et listeformat. Det var ikke nรธdvendig รฅ slรธyfe range() og ved รฅ bruke list()-metoden kunne vi direkte konvertere utdataene fra omrรฅde til listeformat.
Bruke tegn i python-omrรฅdet()
Sรฅ langt har vi brukt heltall i python range(). Vi har ogsรฅ sett at flyttall ikke stรธttes i python-omrรฅdet. La oss prรธve รฅ se resultatet om hva som skjer nรฅr vi bruker tegn.
Eksempel:
for c in range ('z'):
print(c, end =" ")
Utgang:
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
Det gir en feilmelding som sier at en streng ikke kan tolkes som et heltall.
For รฅ fรฅ listen over alfabetene kan du tilpasse koden og fรฅ รธnsket utgang som vist nedenfor:
Eksempel:
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)))
Utgang:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Slik fรฅr du tilgang til rekkeviddeelementer
Du kan bruke en for-lรธkke for รฅ hente verdiene fra omrรฅdet eller bruke indeksen for รฅ fรฅ tilgang til elementene fra range().
Bruker for-loop
Eksempel:
for i in range(6):
print(i)
Utgang:
0 1 2 3 4 5
Bruker indeks
Indeksen brukes med rekkevidde for รฅ fรฅ verdien tilgjengelig pรฅ den posisjonen. Hvis omrรฅdeverdien er 5, for รฅ fรฅ startverdien, kan du bruke range(5)[0] og neste verdiomrรฅde(5)[1] og sรฅ videre.
Eksempel:
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)
Utgang:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Bruker liste()
Denne metoden vil skrive ut alle elementene fra range(). Ved รฅ bruke list() vil den returnere elementene fra range() i listeformat.
Eksempel:
print(list(range(10)))
Utgang:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Den gir listeutdata for omrรฅdet gitt.
Eksempel: Fรฅ partall med range()
Bruk av range() vil gi en liste over partall i omrรฅdet som er gitt som input. Parametrene for range() er: start er 2, stopp er 20, og trinn er 2, sรฅ verdiene vil รธkes med 2 og gi partall frem til stopp-2.
Eksempel:
for i in range(2, 20, 2): print(i, end =" ")
Utgang:
2 4 6 8 10 12 14 16 18
Slรฅ sammen to-range() utganger
I dette eksemplet vil vi sammenkoble to range()-funksjoner ved hjelp av itertools-modulens chain()-funksjon.
Eksempel:
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=" ")
Utgang:
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
Bruke range() med NumPy
NumPy-modulen har en arange()-funksjon som fungerer og gir lignende utdata som range(). Arange() tar inn de samme parameterne som range().
Syntaks:
arange(start, stop, step)
For รฅ jobbe med NumPy, fรธlg trinnene nedenfor.
Trinn 1: Importer NumPy-modul
import numpy
Hvis det under kjรธring oppstรฅr en feilmelding om at den numpy-modulen ikke finnes, mรฅ du installere modulen som vist i trinn 2.
Trinn 2Installer NumPy
pip install numpy
Trinn 3: Arbeidseksempel pรฅ arange() ved bruk av NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Utgang:
0 1 2 3 4 5 6 7 8 9
Flytende kommatall som bruker NumPy arange()
Det er ikke mulig รฅ fรฅ flyttallsekvensen ved รฅ bruke range(), men det er mulig ved รฅ bruke NumPy arange().
Eksempel:
Omrรฅdet vi รธnsker er fra 0.5 til 1.5. Verdien รธkes med 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Utgang:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Utdataene vi fรฅr er litt merkelige; noen av flyttallene vises med 16 desimaler. Dette skjer pรฅ grunn av kompleksiteten ved รฅ lagre desimalflytende tall i binรฆrt format. Du kan ogsรฅ runde verdiene om nรธdvendig og begrense dem til desimalene du trenger.
