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.
