Python range() Funktion: Float, List, For loop Eksempler
โก Smart opsummering
Python range() er en indbygget funktion, der genererer en uforanderlig sekvens af heltal fra en startvรฆrdi op til, men ikke inklusive, en stopvรฆrdi, ved hjรฆlp af et valgfrit trin til at styre forรธgelsen.

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) udskrive vรฆrdierne 0, 1, 2, 3, 4. Python range() er en meget nyttig kommando og bruges mest nรฅr du skal iterere ved hjรฆlp af en til lรธkke.
Syntaks
Syntaksen for funktionen range() er vist nedenfor:
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, hvorved intervalfunktionen skal stoppe. Det er et obligatorisk input til intervalfunktionen. 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 den 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 talsekvens.
Fรธlgende er forskellene 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 med det samme og skal bruges i en for-loop for at fรฅ vรฆrdierne. |
| Hukommelsesforbruget er hรธjere, derfor er kodeudfรธrelsen langsom, nรฅr man arbejder med et stort datasรฆt. | 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รฅ outputtet er 0 1 2 3 4 5 6 7 8 9.
Da starten ikke er angivet, betragtes starten som 0, og den sidste vรฆrdi gives indtil 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รฅ talrรฆkken 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รฅ talrรฆkken starter ved 3. Stopvรฆrdien er 10, sรฅ talrรฆkken stopper ved (10-1), dvs. 9. Trinet er 2, sรฅ hver vรฆrdi i sekvensen รธges med 2. Hvis trinvรฆrdien ikke er angivet, er standardvรฆrdien for trin 1.
for i in range(3, 10, 2): print(i, end =" ")
Output:
3 5 7 9
Indtil videre har vi set, hvordan funktionen range() giver den inkrementerede vรฆrdi for den givne stopvรฆrdi. Lad os nu prรธve et eksempel for at fรฅ den dekrementerede vรฆrdi i det givne interval.
Forรธgelse af vรฆrdierne inden for omrรฅdet ved hjรฆlp af et positivt trin
Parameteren step i range() kan bruges til at รธge eller mindske vรฆrdierne. Som standard er den en positiv vรฆrdi, 1. Sรฅ den vil altid give inkrementerede vรฆrdier.
Trinvรฆrdien skal vรฆre positiv, hvis du รธnsker inkrementerede vรฆrdier som output.
for i in range(1, 30, 5): print(i, end =" ")
Output:
1 6 11 16 21 26
Reverse Omrรฅde: Reduktion af vรฆrdierne ved hjรฆlp af negative trin
Parameteren step med en negativ vรฆrdi i range() kan bruges til at hente dekrementerede vรฆrdier. I eksemplet nedenfor er step-vรฆrdien negativ, sรฅ outputtet vil blive dekrementeret fra den givne intervalvรฆ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 stepvรฆrdien er et negativt tal, dvs. -1. Med ovenstรฅende input vil range()-funktionen reducere vรฆrdien fra 15 og fremefter, 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รฆrdien til 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 funktionen range() ikke understรธtter flydende kommatal for start, stop og step.
Bruger for-loop med Python rรฆkkevidde()
I dette eksempel bruger vi et array af tal og ser, hvordan man itererer arrayet i en 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, som vil vรฆre 4, da vi har fire elementer i arr_list. Startvรฆrdien vil vรฆre 0 og step vil vรฆre 1, sรฅ vรฆrdierne vil starte fra 0 og stoppe ved 3, dvs. lรฆngden af โโarrayet -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 give en liste over lige tal i det omrรฅde, der er angivet som input. Parametrene for range() er: start er 2, stop er 20, og step er 2, sรฅ vรฆrdierne vil blive รธget med 2 og 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 vi sammenkรฆde 2 range()-funktioner ved hjรฆlp af itertools-modulets 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 fungerer og giver lignende output som range(). Arange() tager imod de samme parametre som range().
Syntaks:
arange(start, stop, step)
For at arbejde med NumPy skal du fรธlge nedenstรฅende trin.
Trin 1: Importer NumPy-modul
import numpy
Hvis den under udfรธrelsen giver en fejl, der siger "numpy-modulet blev ikke fundet", skal du installere modulet som vist i trin 2.
Trin 2Installer 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 hente flydende-komma-sekvensen ved hjรฆlp af range(), men det er muligt ved hjรฆlp af NumPy arange().
Eksempel:
Det รธnskede interval 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 de flydende tal vises med 16 decimaler. Dette sker pรฅ grund af kompleksiteten ved at gemme decimaltal i binรฆrt format. Du kan ogsรฅ afrunde vรฆrdierne, hvis det er nรธdvendigt, og begrรฆnse dem til de decimaler, du har brug for.
