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.
