Python range() Functie: Float, List, For loop Voorbeelden
โก Slimme samenvatting
Python `range()` is een ingebouwde functie die een onveranderlijke reeks gehele getallen genereert vanaf een startwaarde tot, maar exclusief, een eindwaarde, waarbij een optionele stapgrootte wordt gebruikt om de increment te bepalen.

Wat is Python Bereik?
Python range() is een ingebouwde functie die beschikbaar is bij Python vanaf Python (3.x), en het geeft een reeks getallen gebaseerd op de gegeven start- en stopindex. In het geval dat de startindex niet gegeven is, wordt de index beschouwd als 0, en zal de waarde met 1 verhoogd worden tot de stopindex.
Range(5) zal bijvoorbeeld de waarden 0, 1, 2, 3, 4 uitvoeren. Python `range()` is een zeer nuttig commando en wordt vooral gebruikt wanneer je moet itereren met behulp van een for loop.
Syntaxis
De syntaxis van de functie range() wordt hieronder weergegeven:
range(start, stop, step)
Kenmerken
- begin: (optioneel) De startindex is een geheel getal en als deze niet wordt opgegeven, is de standaardwaarde 0.
- hou op: De stopindex bepaalt de waarde waarop de bereikfunctie moet stoppen. Het is een verplichte invoer voor de bereikfunctie. De laatste waarde zal altijd 1 lager zijn dan de stopwaarde.
- stap: (optioneel) De stapwaarde is het getal waarmee het volgende getal in het bereik moet worden verhoogd; standaard is dit 1.
Winstwaarde
De retourwaarde is een reeks getallen vanaf de opgegeven start- tot stopindex.
Python range() Functie en geschiedenis
Python range() is geรฏntroduceerd vanaf Python versie 3; daarvoor was xrange() de functie.
Zowel range() als xrange() worden gebruikt om een โโreeks getallen te produceren.
Hieronder volgen de verschillen tussen range() en xrange():
| bereik () | xbereik() |
|---|---|
| De range() functie geeft de reeks getallen en retourneert een lijst met getallen. | De functie xrange() geeft een generatorobject dat in een for-lus moet worden doorlopen om de waarden op te halen. |
| De range() retourneert een lijst. | xrange() retourneert een generatorobject. |
| De methode range() gebruikt meer geheugen omdat de geretourneerde lijst moet worden opgeslagen in vergelijking met xrange(). | Omdat xrange() een generatorobject retourneert, geeft het niet direct waarden en moet het binnen een for-loop worden gebruikt om de waarden te verkrijgen. |
| Het geheugengebruik is hoger, waardoor de code-uitvoering trager verloopt bij het verwerken van grote datasets. | De code-uitvoering is sneller met behulp van xrange(). |
Bereik() gebruiken
Dit voorbeeld laat zien hoe u de waarden van 0-9 kunt afdrukken met behulp van range().
De waarde die in het bereik wordt gebruikt is 10, dus de uitvoer is 0 1 2 3 4 5 6 7 8 9.
Omdat het beginpunt niet is opgegeven, wordt het beginpunt als 0 beschouwd en wordt de laatste waarde gegeven tot en met 9. De laatste waarde is altijd 1 minder dan de opgegeven waarde, oftewel stop-1.
for i in range(10): print(i, end =" ")
Output:
0 1 2 3 4 5 6 7 8 9
Start en stop gebruiken binnen bereik()
In de code is de startwaarde 3 en de stopwaarde 10. Omdat de startindex 3 is, begint de reeks getallen bij 3 en loopt door tot de stopwaarde. De laatste waarde in de reeks is 1 minder dan de stopwaarde, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
Output:
3 4 5 6 7 8 9
Gebruik start, stop en stap
De startwaarde is 3, dus de getallenreeks begint bij 3. De stopwaarde is 10, dus de getallenreeks stopt bij (10-1), oftewel 9. De stapgrootte is 2, dus elke waarde in de reeks wordt met 2 verhoogd. Als de stapgrootte niet is opgegeven, wordt de standaardwaarde 1 gebruikt.
for i in range(3, 10, 2): print(i, end =" ")
Output:
3 5 7 9
Tot nu toe hebben we gezien hoe de functie `range()` de verhoogde waarde geeft voor de opgegeven stopwaarde. Laten we nu eens kijken naar een voorbeeld om de verlaagde waarde binnen het opgegeven bereik te verkrijgen.
De waarden binnen een bereik verhogen met een positieve stap.
De parameter `step` in `range()` kan worden gebruikt om de waarden te verhogen of te verlagen. Standaard is dit een positieve waarde, namelijk 1. Hierdoor worden de waarden altijd verhoogd.
De stapgrootte moet positief zijn als je oplopende waarden als uitvoer wilt.
for i in range(1, 30, 5): print(i, end =" ")
Output:
1 6 11 16 21 26
Reverse Bereik: Waarden verlagen met behulp van negatieve stappen
De parameter `step` met een negatieve waarde in `range()` kan worden gebruikt om verlaagde waarden te verkrijgen. In het onderstaande voorbeeld is de waarde van `step` negatief, waardoor de uitvoer wordt verlaagd ten opzichte van de opgegeven `range`-waarde.
for i in range(15, 5, -1): print(i, end =" ")
Output:
15 14 13 12 11 10 9 8 7 6
De startwaarde is 15, de stopwaarde is 5 en de stapgrootte is een negatief getal, namelijk -1. Met deze invoer zal de functie range() de waarde vanaf 15 verlagen tot de stopwaarde, maar het verschil is dat de laatste waarde stop + 1 zal zijn.
Het gebruik van drijvende getallen in Python bereik ()
Laten we nu aan de slag gaan met range() met behulp van drijvende-kommagetallen.
Voorbeeld:
for i in range(10.5): print(i, end =" ")
In het bovenstaande voorbeeld hebben we de stopwaarde ingesteld op 10.5.
De uitvoer is:
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 Dit geeft een foutmelding omdat de functie range() geen drijvende-komma getallen ondersteunt voor start, stop en stap.
For-loop gebruiken met Python bereik ()
In dit voorbeeld gebruiken we een array met getallen en laten we zien hoe je met behulp van `range()` door de array kunt itereren binnen een `for`-lus.
Voorbeeld:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Output:
MysqlMongodb PostgreSQL Firebase
In het bovenstaande voorbeeld hebben we len(arr_list) als stopwaarde gebruikt. De for-lus zal itereren tot de stopwaarde, oftewel de lengte van de array, die 4 zal zijn, aangezien arr_list vier items bevat. De startwaarde is 0 en de stapgrootte is 1, dus de waarden beginnen bij 0 en eindigen bij 3, oftewel de lengte van de array min 1, wat betekent dat 4 - 1 = 3.
gebruik Python range() als een lijst
In dit voorbeeld ziet u hoe u de uitvoer van bereik als lijst kunt gebruiken.
Voorbeeld:
print(list(range(10)))
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
U kunt zien dat de uitvoer een lijstindeling is. Het was niet nodig om de range() te herhalen en met behulp van de list()-methode konden we de uitvoer direct converteren van range- naar lijstformaat.
Tekens gebruiken in Python range()
Tot nu toe hebben we integers gebruikt in python range(). We hebben ook gezien dat floating-point getallen niet worden ondersteund in python range. Laten we eens kijken wat er gebeurt als we characters gebruiken.
Voorbeeld:
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
Er wordt een foutmelding gegeven dat een string niet als een geheel getal kan worden geรฏnterpreteerd.
Om de lijst met alfabetten te krijgen, kunt u de code aanpassen en de gewenste uitvoer krijgen, zoals hieronder weergegeven:
Voorbeeld:
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']
Toegang krijgen tot bereikelementen
U kunt een for-loop gebruiken om de waarden uit het bereik te halen, of u kunt de index gebruiken om toegang te krijgen tot de elementen uit range().
For-loop gebruiken
Voorbeeld:
for i in range(6):
print(i)
Output:
0 1 2 3 4 5
Index gebruiken
De index wordt gebruikt met bereik om de op die positie beschikbare waarde te verkrijgen. Als de bereikwaarde 5 is, kunt u om de startwaarde te verkrijgen range(5)[0] en de volgende waarde range(5)[1] gebruiken, enzovoort.
Voorbeeld:
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
Lijst() gebruiken
Met deze methode worden alle elementen uit de range() afgedrukt. Met behulp van list() retourneert het de elementen uit range() in lijstformaat.
Voorbeeld:
print(list(range(10)))
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Het geeft de lijstuitvoer voor het opgegeven bereik.
Voorbeeld: Even getallen verkrijgen met behulp van range()
Met range() krijg je een lijst met even getallen binnen het opgegeven bereik. De parameters voor range() zijn: start is 2, stop is 20 en step is 2. De waarden worden dus met 2 verhoogd en geven even getallen tot stop-2.
Voorbeeld:
for i in range(2, 20, 2): print(i, end =" ")
Output:
2 4 6 8 10 12 14 16 18
Uitgangen met twee bereiken() samenvoegen
In dit voorbeeld zullen we twee range()-functies samenvoegen met behulp van de chain()-functie uit de itertools-module.
Voorbeeld:
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
Range() gebruiken met NumPy
De NumPy-module heeft een functie genaamd `arange()` die werkt en een vergelijkbare uitvoer geeft als `range()`. De functie `arange()` accepteert dezelfde parameters als `range()`.
Syntax:
arange(start, stop, step)
Om met NumPy te werken, volg je de onderstaande stappen.
Stap 1: NumPy-module importeren
import numpy
Als er tijdens de uitvoering een foutmelding verschijnt dat de NumPy-module niet is gevonden, moet u de module installeren zoals beschreven in stap 2.
Stap 2NumPy installeren
pip install numpy
Stap 3: Werkvoorbeeld van arange() met 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
Vlottendekommagetallen met behulp van NumPy arange()
Het is niet mogelijk om de drijvende-kommareeks te verkrijgen met behulp van `range()`, maar wel met `NumPy arange()`.
Voorbeeld:
Het gewenste bereik is van 0.5 tot 1.5. De waarde wordt met 0.2 verhoogd.
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
De uitvoer die we krijgen is een beetje vreemd; sommige drijvende-komma getallen worden weergegeven met 16 decimalen. Dit komt door de complexiteit van het opslaan van decimale drijvende-komma getallen in binaire vorm. U kunt de waarden indien nodig ook afronden en het aantal decimalen beperken tot het gewenste aantal.
