Python range() Funktion: Float, List, For loop Exempel
⚡ Smart sammanfattning
Python range() är en inbyggd funktion som genererar en oföränderlig sekvens av heltal från ett startvärde upp till, men exklusive, ett stoppvärde, med hjälp av ett valfritt steg för att styra ökningen.

Vad är Python Räckvidd?
Python range() är en inbyggd funktion tillgänglig med Python från Python (3.x), och det ger en sekvens av siffror baserat på det angivna start- och stoppindexet. Om startindexet inte anges anses indexet vara 0, och det kommer att öka värdet med 1 till stoppindexet.
Till exempel kommer range(5) att mata ut värdena 0, 1, 2, 3, 4. Den Python range() är ett mycket användbart kommando och används oftast när du måste iterera med en för slinga.
syntax
Syntaxen för funktionen range() visas nedan:
range(start, stop, step)
Driftparametrar
- Start: (valfritt) Startindexet är ett heltal, och om det inte anges är standardvärdet 0.
- sluta: Stoppindexet avgör vid vilket värde intervallfunktionen måste stoppa. Det är obligatorisk indata för intervallfunktionen. Det sista värdet kommer alltid att vara 1 mindre än stoppvärdet.
- steg: (valfritt) Stegvärdet är det tal med vilket nästa tal inom intervallet måste ökas; som standard är det 1.
Returvärde
Returvärdet är en sekvens av tal från det givna start-till-stopp-indexet.
Python range() Funktion och historik
Python range() har introducerats från Python version 3; innan dess var xrange() funktionen.
Både range() och xrange() används för att skapa en talföljd.
Följande är skillnaderna mellan range() och xrange():
| räckvidd() | xrange() |
|---|---|
| Range() ger talföljden och returnerar en lista med tal. | Funktionen xrange() ger ett generatorobjekt som måste loopas i en for-loop för att få värdena. |
| Range() returnerar en lista. | xrange() returnerar ett generatorobjekt. |
| Metoden range() använder mer minne eftersom listan som returneras måste lagras i jämförelse med xrange(). | Eftersom xrange() returnerar ett generatorobjekt, ger det inte värden direkt och måste användas inuti en for-loop för att hämta värdena. |
| Minnesanvändningen är högre, därför är kodkörningen långsam när man arbetar med en enorm datamängd. | Kodexekveringen är snabbare med xrange(). |
Använder range()
Det här exemplet visar hur man skriver ut värdena från 0-9 med range().
Värdet som används i intervallet är 10, så utdata är 0 1 2 3 4 5 6 7 8 9.
Eftersom starten inte anges betraktas starten som 0 och det sista värdet anges fram till 9. Det sista värdet är alltid 1 mindre än det givna värdet, dvs. stopp-1.
for i in range(10): print(i, end =" ")
Produktion:
0 1 2 3 4 5 6 7 8 9
Använder start och stopp i intervallet()
I koden är startvärdet 3 och stoppvärdet 10. Här är startindex 3, så talföljden börjar från 3 till stoppvärdet. Det sista värdet i sekvensen kommer att vara 1 mindre än stoppvärdet, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
Produktion:
3 4 5 6 7 8 9
Använder start, stop och step
Startvärdet är 3, så talföljden börjar vid 3. Stoppvärdet är 10, så talföljden slutar vid (10-1), dvs. 9. Steget är 2, så varje värde i sekvensen ökas med 2. Om stegvärdet inte anges är standardvärdet för steg 1.
for i in range(3, 10, 2): print(i, end =" ")
Produktion:
3 5 7 9
Hittills har vi sett hur funktionen range() ger det ökade värdet för det givna stoppvärdet. Låt oss nu prova ett exempel för att få det minskade värdet inom det givna intervallet.
Öka värdena inom intervallet med ett positivt steg
Parametern step i range() kan användas för att öka eller minska värdena. Som standard är det ett positivt värde, 1. Så den kommer alltid att ge ökade värden.
Stegvärdet måste vara positivt om du vill ha ökade värden som utdata.
for i in range(1, 30, 5): print(i, end =" ")
Produktion:
1 6 11 16 21 26
Reverse Område: Minskning av värdena med negativt steg
Parametern step med ett negativt värde i range() kan användas för att hämta minskade värden. I exemplet nedan är stepvärdet negativt, så utdata kommer att minskas från det givna intervallvärdet.
for i in range(15, 5, -1): print(i, end =" ")
Produktion:
15 14 13 12 11 10 9 8 7 6
Startvärdet är 15, stoppvärdet är 5 och stegvärdet är ett negativt tal, dvs. -1. Med ovanstående indata kommer funktionen range() att minska värdet från 15 och framåt tills det når stoppvärdet, men skillnaden här är att det sista värdet kommer att vara stopp + 1.
Använder flytande tal i Python räckvidd()
Låt oss nu arbeta med range() med flyttal.
Exempel:
for i in range(10.5): print(i, end =" ")
I exemplet ovan har vi använt stoppvärdet 10.5.
Utgången är:
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 ger ett fel eftersom funktionen range() inte stöder flyttal för start, stopp och steg.
Använder for-loop med Python räckvidd()
I det här exemplet använder vi en array med tal och ser hur man itererar arrayen inuti en for-loop med hjälp av range().
Exempel:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Produktion:
MysqlMongodb PostgreSQL Firebase
I exemplet ovan har vi använt len(arr_list) som stoppvärde. for-loopen itererar till stoppvärdet, dvs. längden på arrayen, vilket blir 4, eftersom vi har fyra element i arr_list. Startvärdet blir 0 och step blir 1, så värdena börjar från 0 och stannar vid 3, dvs. längden på arrayen -1, vilket betyder 4 -1 = 3.
Använda Python range() som en lista
I det här exemplet kommer vi att se hur man använder utdata från intervall som en lista.
Exempel:
print(list(range(10)))
Produktion:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Du kan se att resultatet är ett listformat. Det var inte nödvändigt att loopa range() och med hjälp av list()-metoden kunde vi direkt konvertera utdata från range till listformat.
Använda tecken i python range()
Hittills har vi använt heltal i python range(). Vi har också sett att flyttalsnummer inte stöds i python-intervallet. Låt oss försöka se resultatet om vad som händer när vi använder tecken.
Exempel:
for c in range ('z'):
print(c, end =" ")
Produktion:
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 ger ett fel som säger att en sträng inte kan tolkas som ett heltal.
För att få listan över alfabeten kan du anpassa koden och få önskad utdata som visas nedan:
Exempel:
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)))
Produktion:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Hur man kommer åt Range Elements
Du kan använda en for-loop för att få värdena från området eller använda indexet för att komma åt elementen från range().
Använder for-loop
Exempel:
for i in range(6):
print(i)
Produktion:
0 1 2 3 4 5
Använder index
Indexet används med intervall för att få värdet tillgängligt på den positionen. Om intervallvärdet är 5, för att få startvärdet, kan du använda range(5)[0] och nästa värde range(5)[1] och så vidare.
Exempel:
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)
Produktion:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Använder list()
Denna metod kommer att skriva ut alla element från range(). Genom att använda list() returneras elementen från range() i listformat.
Exempel:
print(list(range(10)))
Produktion:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Det ger listutdata för det angivna intervallet.
Exempel: Få jämna tal med range()
Genom att använda range() får man en lista över jämna tal i det angivna intervallet. Parametrarna för range() är: start är 2, stopp är 20 och steg är 2, så värdena ökas med 2 och ger jämna tal fram till stopp-2.
Exempel:
for i in range(2, 20, 2): print(i, end =" ")
Produktion:
2 4 6 8 10 12 14 16 18
Sammanfogar två-intervall()-utgångar
I det här exemplet kommer vi att sammanfoga två range()-funktioner med hjälp av itertools-modulens chain()-funktion.
Exempel:
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=" ")
Produktion:
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
Använder range() med NumPy
NumPy-modulen har en arange()-funktion som fungerar och ger liknande utdata som range(). Arange() tar in samma parametrar som range().
Syntax:
arange(start, stop, step)
För att arbeta med NumPy, följ stegen nedan.
steg 1: Importera NumPy-modul
import numpy
Om det under körning visas ett felmeddelande som säger att den numpy-modulen inte hittades, måste du installera modulen enligt steg 2.
steg 2Installera NumPy
pip install numpy
steg 3: Arbetsexempel på arange() med NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Produktion:
0 1 2 3 4 5 6 7 8 9
Flyttal med hjälp av NumPy arange()
Det är inte möjligt att hämta flyttalsekvensen med range(), men det är möjligt med NumPy arange().
Exempel:
Det önskade intervallet är från 0.5 till 1.5. Värdet kommer att ökas med 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Produktion:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Utdata vi får är lite konstig; vissa av flyttallen visas med 16 decimaler. Detta händer på grund av komplexiteten i att lagra decimala flytande tal i binärt format. Du kan också avrunda värdena om det behövs och begränsa dem till de decimaler du behöver.
