Python range() Functie: Float, List, For loop Voorbeelden

Wat is Python Bereik?

Python range() is een ingebouwde functie die beschikbaar is bij Python van 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) levert bijvoorbeeld de waarden 0,1,2,3,4 op Python range() is een zeer nuttig commando en wordt vooral gebruikt als je moet itereren met for loop.

Syntaxis

range(start, stop, step)

parameters

  • 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 waarbij de bereikfunctie moet stoppen. Het is een verplichte invoer voor de bereikfunctie. De laatste waarde zal altijd 1 minder 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 staan ​​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-lus worden gebruikt om de waarden op te halen.
Het geheugengebruik is groter en daarom is de uitvoering van de code traag bij het werken aan een enorme reeks gegevens. 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 binnen het bereik wordt gebruikt is 10, dus de uitvoer is 0 1 2 3 4 5 6 7 8 9

Omdat de start niet is opgegeven, wordt de start als 0 beschouwd en wordt de laatste waarde tot en met 9 gegeven. De laatste waarde is altijd 1 minder dan de opgegeven waarde, dwz 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. Hier is de startindex 3, dus de reeks getallen begint bij 3 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 reeks getallen begint bij 3. De stopwaarde is 10, dus de reeks getallen stopt bij (10-1), d.w.z. 9. De stap is 2, dus elke waarde in de reeks wordt met 2 verhoogd. Als de stapwaarde niet is opgegeven, wordt de waarde voor stap standaard ingesteld op 1.

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 gegeven stopwaarde. Laten we nu een voorbeeld proberen om de verlaagde waarde binnen het gegeven bereik te krijgen.

De waarden binnen het bereik verhogen met een positieve stap.

De parameter step in range() kan worden gebruikt om de waarden te verhogen/verlagen. Standaard is dit een positieve waarde 1. Er worden dus altijd verhoogde waarden weergegeven.

De stapwaarde moet positief zijn als u verhoogde waarden als uitvoer wilt hebben.

for i in range(1, 30, 5):
    print(i, end =" ")

Output:

1 6 11 16 21 26

Reverse Range: De waarden verlagen met behulp van een negatieve stap

De parameterstap met een negatieve waarde in range() kan worden gebruikt om verlaagde waarden te verkrijgen. In het onderstaande voorbeeld is de stapwaarde negatief, dus de uitvoer wordt verlaagd ten opzichte van de opgegeven bereikwaarde.

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 stapwaarde is een negatief getal, dwz -1. Met bovenstaande invoer zal de functie range() de waarde vanaf 15 verlagen totdat deze de stopwaarde bereikt, maar hier is het verschil dat de laatste waarde stop + 1 is.

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 10.5 gebruikt.

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 geeft een foutmelding omdat de range()-functie geen drijvendekommagetallen ondersteunt voor start, stop en stap.

For-loop gebruiken met Python bereik ()

In dit voorbeeld gebruiken we een array met getallen en laten we eens kijken hoe we de array kunnen itereren binnen de for-loop met behulp van range()

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 herhalen tot de stopwaarde, dat wil zeggen de lengte van de array, en dat zal 4 zijn, omdat we vier items in de arr_list hebben. De startwaarde is 0 en de stap is 1. De waarden beginnen dus bij 0 en stoppen bij 3, dat wil zeggen de lengte van array -1, wat betekent 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() krijgt u de lijst met even getallen in het bereik dat als invoer is gegeven. De parameters voor range() zijn, start is 2, stop is 20 en step is 2, dus de waarden worden 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 worden 2 range()-functies samengevoegd met behulp van de itertools-module chain()-functie.

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 arange() die werkt en vergelijkbare uitvoer geeft als range(). De arrange() neemt dezelfde parameters over als range().

Syntax:

arange(start, stop, step)

Om met NumPy te werken, volgt u de onderstaande stappen.

Stap 1: NumPy-module importeren

import numpy

Als er tijdens de uitvoering een foutmelding verschijnt dat numpy-module niet is gevonden, moet u de module installeren zoals weergegeven in stap 2.

Stap 2: Installeer NumPy

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 het is wel mogelijk met NumPy arange().

Voorbeeld:

Het bereik dat we willen is van 0.5 tot 1.5. De waarde wordt verhoogd met 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

De output die we krijgen is een beetje vreemd, sommige van de float-getallen worden weergegeven met 16 decimalen. Dit gebeurt vanwege de complexiteit van het opslaan van decimale floating-getallen in binair formaat. U kunt de waarden ook afronden indien nodig en ze beperken tot de decimalen die u nodig hebt.

Samenvatting

  • Python range() is een ingebouwde functie die beschikbaar is bij Python van 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 verhoogd worden tot de stopindex.
  • Python range() is geïntroduceerd vanaf Python-versie 3, daarvoor was xrange() de functie.
  • De range() geeft de reeks getallen en retourneert een lijst met getallen. De xrange()-functie geeft een generatorobject dat in een for-loop moet worden gelust om de waarden te verkrijgen.
  • De parameter step in range() kan worden gebruikt om de waarden te verhogen/verlagen. Standaard is dit een positieve waarde 1. Er worden dus altijd verhoogde waarden weergegeven.
  • Python geeft een fout bij getallen met drijvende komma, omdat de range()-functie alleen gehele getallen ondersteunt.
  • De waarden uit range() zijn toegankelijk via for-loop, met behulp van index en list()
  • De NumPy-module heeft een functie arange() die werkt en vergelijkbare uitvoer geeft als range(). De arange() neemt dezelfde parameters over als range().
  • Het is mogelijk om de drijvende-kommareeks NumPy arange() te verkrijgen die niet wordt ondersteund met range().