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)
parametre
- 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().