Python range() Funktion: Float, List, For loop Eksempler
Hvad er Python Rรฆkkevidde?
Python range() er en indbygget funktion tilgรฆngelig med Python fra Python(3.x), og det giver en talfรธlge baseret pรฅ det angivne start- og stopindeks. Hvis startindekset ikke er angivet, betragtes indekset som 0, og det vil รธge vรฆrdien med 1 indtil stopindekset.
For eksempel vil range(5) udlรฆse dig vรฆrdierne 0,1,2,3,4 .The Python range() er en meget nyttig kommando og bruges mest, nรฅr du skal iterere med for loop.
Syntaks
range(start, stop, step)
Driftsparametre
- Start: (valgfrit) Startindekset er et heltal, og hvis det ikke er givet, er standardvรฆrdien 0.
- hold op: Stopindekset bestemmer den vรฆrdi, som omrรฅdefunktionen skal stoppe ved. Det er et obligatorisk input til omrรฅdefunktionen. Den sidste vรฆrdi vil altid vรฆre 1 mindre end stopvรฆrdien.
- trin: (valgfrit). Trinvรฆrdien er det tal, som det nรฆste tal i omrรฅdet skal รธges med, som standard er det 1.
Returvรฆrdi
Returvรฆrdien er en sekvens af tal fra det givne start-til-stop-indeks.
Python range() Funktion og historie
Python range() er blevet introduceret fra python version 3, fรธr det var xrange() funktionen.
Bรฅde range og xrange() bruges til at producere en rรฆkke tal.
Fรธlgende er forskellen mellem range og xrange():
| rรฆkkevidde() | xrange() |
|---|---|
| Range() giver talrรฆkken og returnerer en liste med tal. | Funktionen xrange() giver et generatorobjekt, der skal slรธjfes i en for-loop for at fรฅ vรฆrdierne. |
| Range() returnerer en liste. | xrange() returnerer et generatorobjekt. |
| Range()-metoden bruger mere hukommelse, da den returnerede liste skal lagres i forhold til xrange(). | Da xrange() returnerer et generatorobjekt, giver det ikke vรฆrdier รธjeblikkeligt og skal bruges inde i for-loop for at fรฅ vรฆrdierne. |
| Brugen af โโhukommelse er mere, derfor er kodeudfรธrelsen langsom, nรฅr der arbejdes pรฅ et stort sรฆt data. | Kodeudfรธrelsen er hurtigere ved at bruge xrange(). |
Bruger range()
Dette eksempel viser, hvordan man udskriver vรฆrdierne fra 0-9 ved hjรฆlp af range().
Den anvendte vรฆrdi i omrรฅdet er 10, sรฅ output er 0 1 2 3 4 5 6 7 8 9
Da starten ikke er givet, betragtes starten som 0 og den sidste vรฆrdi er givet til 9. Den sidste vรฆrdi er altid 1 mindre end den givne vรฆrdi, dvs. stop-1.
for i in range(10):
print(i, end =" ")
Output:
0 1 2 3 4 5 6 7 8 9
Brug af start og stop i rรฆkkevidde()
I koden er startvรฆrdien 3, og stopvรฆrdien er 10. Her er startindekset 3, sรฅ talfรธlgen starter fra 3 til stopvรฆrdien. Den sidste vรฆrdi i sekvensen vil vรฆre 1 mindre end stopvรฆrdien 10-1 = 9.
for i in range(3, 10):
print(i, end =" ")
Output:
3 4 5 6 7 8 9
Brug af start, stop og step
Startvรฆrdien er 3, sรฅ talfรธlgen starter ved 3. Stopvรฆrdien er 10, sรฅ talrรฆkken stopper ved (10-1) dvs. 9. Trinnet er 2, sรฅ hver vรฆrdi i rรฆkkefรธlgen vil รธges med 2. Hvis trinvรฆrdien ikke er angivet, er vรฆrdien for trin som standard 1.
for i in range(3, 10, 2):
print(i, end =" ")
Output:
3 5 7 9
Indtil videre har vi set, hvordan range()-funktionen giver den รธgede vรฆrdi for den angivne stopvรฆrdi. Lad os nu prรธve et eksempel for at fรฅ den dekrementerede vรฆrdi i det angivne omrรฅde.
Forรธgelse af vรฆrdierne i omrรฅdet ved hjรฆlp af et positivt trin.
Parametertrinnet i range() kan bruges til at รธge/dekrementere vรฆrdierne. Som standard er det en positiv vรฆrdi 1. Sรฅ det vil altid give รธgede vรฆrdier.
Trinvรฆrdien skal vรฆre positiv, hvis du vil have รธgede vรฆrdier som output.
for i in range(1, 30, 5):
print(i, end =" ")
Output:
1 6 11 16 21 26
Reverse Range: Formindskelse af vรฆrdierne ved hjรฆlp af negative trin
Parametertrinnet med negativ vรฆrdi i range() kan bruges til at fรฅ dekrementerede vรฆrdier. I eksemplet nedenfor er trinvรฆrdien negativ, sรฅ outputtet vil blive reduceret fra den angivne omrรฅdevรฆrdi.
for i in range(15, 5, -1):
print(i, end =" ")
Output:
15 14 13 12 11 10 9 8 7 6
Startvรฆrdien er 15, stopvรฆrdien er 5 og trinvรฆrdien er negativt tal, dvs. -1. Med ovenstรฅende input vil range() funktionen dekrementere vรฆrdien fra 15 og frem, indtil den nรฅr stopvรฆrdien, men her er forskellen, at den sidste vรฆrdi vil vรฆre stop + 1.
Brug af flydende tal i Python rรฆkkevidde()
Lad os nu arbejde pรฅ range() ved hjรฆlp af flydende kommatal.
Eksempel:
for i in range(10.5):
print(i, end =" ")
I ovenstรฅende eksempel har vi brugt stopvรฆrdi som 10.5.
Udgangen 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 giver en fejl, da range()-funktionen ikke understรธtter flydende kommatal for start, stop og step.
Bruger for-loop med Python rรฆkkevidde()
I dette eksempel vil vi bruge en matrix af tal, og lad os se, hvordan man bruger iterationen af โโmatrixen inde i for-loop ved hjรฆlp af range()
Eksempel:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']
for i in range(len(arr_list)):
print(arr_list[i], end =" ")
Output:
MysqlMongodb PostgreSQL Firebase
I ovenstรฅende eksempel har vi brugt len(arr_list) som stopvรฆrdi. For-lรธkken vil iterere indtil stopvรฆrdien, dvs. lรฆngden af โโarrayet, og det vil vรฆre 4, da vi har fire elementer i arr_listen. Startvรฆrdien vil vรฆre 0, og trin vil vรฆre 1. Sรฅ vรฆrdierne starter fra 0 og stopper ved 3, dvs. lรฆngden af โโarray -1, hvilket betyder 4 -1 = 3.
Ved brug af Python range() som en liste
I dette eksempel vil vi se, hvordan man gรธr brug af output fra range som en liste.
Eksempel:
print(list(range(10)))
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Du kan se, at outputtet er et listeformat. Det var ikke nรธdvendigt at slรธjfe range() og ved hjรฆlp af list()-metoden kunne vi direkte konvertere output fra omrรฅde til listeformat.
Brug af tegn i python-omrรฅde()
Indtil videre har vi brugt heltal i python range(). Vi har ogsรฅ set, at floating-point-tal ikke understรธttes i python-omrรฅdet. Lad os prรธve at se resultatet af, hvad der sker, nรฅr vi bruger tegn.
Eksempel:
for c in range ('z'):
print(c, end =" ")
Output:
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 giver en fejl, der siger, at en streng ikke kan fortolkes som et heltal.
For at fรฅ listen over alfabeterne kan du tilpasse koden og fรฅ det รธnskede output 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)))
Output:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Sรฅdan fรฅr du adgang til Range Elements
Du kan bruge en for-loop til at fรฅ vรฆrdierne fra omrรฅdet eller bruge indekset til at fรฅ adgang til elementerne fra range().
Bruger for-loop
Eksempel:
for i in range(6):
print(i)
Output:
0 1 2 3 4 5
Brug af indeks
Indekset bruges med interval for at fรฅ den tilgรฆngelige vรฆrdi pรฅ den position. Hvis intervalvรฆrdien er 5, for at fรฅ startvรฆrdien, kan du bruge range(5)[0] og den nรฆste vรฆrdi range(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)
Output:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Brug af liste()
Denne metode vil udskrive alle elementer fra range(). Ved at bruge list() returneres elementerne fra range() i listeformat.
Eksempel:
print(list(range(10)))
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Det giver listen output for det angivne omrรฅde.
Eksempel: Fรฅ lige tal ved hjรฆlp af range()
Brug af range() vil fรฅ listen over lige tal i omrรฅdet givet som input. Parametrene for range() er, start er 2, stop er 20, og trin er 2, sรฅ vรฆrdierne vil blive forรธget med 2 og vil give lige tal indtil stop-2.
Eksempel:
for i in range(2, 20, 2):
print(i, end =" ")
Output:
2 4 6 8 10 12 14 16 18
Sammenlรฆgning af to-range()-output
I dette eksempel vil 2 range() funktioner sammenkรฆdes ved hjรฆlp af itertools modul chain() funktion.
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=" ")
Output:
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
Brug af range() med NumPy
NumPy-modulet har en arange() funktion, der virker og giver lignende output som range(). Arrangementet() tager de samme parametre som range().
Syntaks:
arange(start, stop, step)
For at arbejde med NumPy skal du fรธlge trinene nedenfor.
Trin 1: Importer NumPy-modul
import numpy
I tilfรฆlde af at det under udfรธrelse giver en fejl, der siger, at numpy-modulet ikke blev fundet, skal du installere modulet som vist i trin 2.
Trin 2: Installer NumPy
pip install numpy
Trin 3: Arbejdseksempel pรฅ arange() ved hjรฆlp af NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Output:
0 1 2 3 4 5 6 7 8 9
Flydende kommatal ved hjรฆlp af NumPy arange()
Det er ikke muligt at fรฅ den flydende komma-sekvens ved hjรฆlp af range(), men det er muligt ved at bruge NumPy arange().
Eksempel:
Det interval, vi รธnsker, er fra 0.5 til 1.5. Vรฆrdien รธges med 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Output:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Det output, vi fรฅr, er lidt mรฆrkeligt, nogle af flydetallene er vist med 16 decimaler. Dette sker pรฅ grund af kompleksiteten ved at gemme flydende decimaltal i binรฆrt format. Du kan ogsรฅ afrunde vรฆrdierne, hvis det krรฆves, og begrรฆnse dem til de decimaler, du har brug for.
Resumรฉ
- Python range() er en indbygget funktion tilgรฆngelig med Python fra Python(3.x), og det giver en talfรธlge baseret pรฅ det angivne start- og stopindeks. Hvis startindekset ikke er angivet, betragtes indekset som 0, og det vil รธge vรฆrdien til stopindekset.
- Python range() er blevet introduceret fra Python version 3, fรธr det var xrange() funktionen.
- Range() giver talrรฆkken og returnerer en liste med tal. Funktionen xrange() giver et generatorobjekt, der skal slรธjfes i en for-loop for at fรฅ vรฆrdierne.
- Parametertrinnet i range() kan bruges til at รธge/dekrementere vรฆrdierne. Som standard er det en positiv vรฆrdi 1. Sรฅ det vil altid give รธgede vรฆrdier.
- Python giver en fejl for flydende kommatal, da range()-funktionen kun understรธtter heltalsvรฆrdier.
- Vรฆrdierne fra range() kan tilgรฅs ved hjรฆlp af for-loop, ved hjรฆlp af index og list()
- NumPy-modulet har en arange() funktion, der virker og giver lignende output som range(). arange() tager de samme parametre som range().
- Det er muligt at fรฅ floating-point-sekvensen NumPy arange(), der ikke understรธttes ved hjรฆlp af range().
