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.
