Python range() Funksjon: Float, List, For loop Eksempler

Hva er Python Omrรฅde?

Python range() er en innebygd funksjon tilgjengelig med Python fra Python(3.x), og den gir en tallsekvens basert pรฅ start- og stoppindeksen som er gitt. I tilfelle startindeksen ikke er gitt, regnes indeksen som 0, og den vil รธke verdien med 1 til stoppindeksen.

For eksempel vil range(5) gi deg verdiene 0,1,2,3,4 .The Python range() er en veldig nyttig kommando og brukes mest nรฅr du mรฅ iterere med for loop.

syntax

range(start, stop, step)

Parametre

  • begynne: (valgfritt) Startindeksen er et heltall, og hvis den ikke er gitt, er standardverdien 0.
  • Stoppe: Stoppindeksen bestemmer verdien som rekkeviddefunksjonen skal stoppe ved. Det er en obligatorisk inngang til rekkeviddefunksjonen. Den siste verdien vil alltid vรฆre 1 mindre enn stoppverdien.
  • steg: (valgfritt). Trinnverdien er tallet som det neste tallet i omrรฅdet mรฅ รธkes med, som standard er det 1.

Returverdi

Returverdien er en tallsekvens fra den gitte start-til-stopp-indeksen.

Python range() Funksjon og historie

Python range() har blitt introdusert fra python versjon 3, fรธr det var xrange() funksjonen.

Bรฅde range og xrange() brukes til รฅ produsere en rekke tall.

Fรธlgende er forskjellen mellom range og xrange():

omrรฅde() xrange()
Range() gir tallrekkefรธlgen og returnerer en liste med tall. xrange()-funksjonen gir et generatorobjekt som mรฅ slรธyfes i en for-lรธkke for รฅ fรฅ verdiene.
Range() returnerer en liste. xrange() returnerer et generatorobjekt.
Range()-metoden bruker mer minne ettersom listen som returneres mรฅ lagres i forhold til xrange(). Ettersom xrange() returnerer et generatorobjekt, gir det ikke verdier umiddelbart og mรฅ brukes inne i for-loop for รฅ fรฅ verdiene.
Bruken av minne er mer, derfor er kjรธringen av kode treg nรฅr du arbeider med et stort sett med data. Kodekjรธringen er raskere ved รฅ bruke xrange().

Bruker range()

Dette eksemplet viser hvordan du skriver ut verdiene fra 0-9 ved รฅ bruke range().

Verdien som brukes i omrรฅdet er 10, sรฅ utgangen er 0 1 2 3 4 5 6 7 8 9

Siden starten ikke er gitt, regnes starten som 0 og den siste verdien er gitt til 9. Den siste verdien er alltid 1 mindre enn den gitte verdien, dvs. stopp-1.

for i in range(10):
    print(i, end =" ")

Utgang:

0 1 2 3 4 5 6 7 8 9

Bruke start og stopp i rekkevidde()

I koden er startverdien 3, og stoppverdien er 10. Her er startindeksen 3, sรฅ tallsekvensen starter fra 3 til stoppverdien. Den siste verdien i sekvensen vil vรฆre 1 mindre enn stoppverdien 10-1 = 9.

for i in range(3, 10):
    print(i, end =" ")

Utgang:

3 4 5 6 7 8 9

Bruker start, stop og step

Startverdien er 3, sรฅ tallrekkefรธlgen vil starte pรฅ 3. Stoppverdien er 10, sรฅ tallrekkefรธlgen vil stoppe ved (10-1) dvs. 9. Steget er 2, sรฅ hver verdi i sekvensen vil รธkes med 2. Hvis trinnverdien ikke er oppgitt, er verdien for trinn som standard 1.

for i in range(3, 10, 2):
    print(i, end =" ")

Utgang:

3 5 7 9

Sรฅ langt har vi sett hvordan range()-funksjonen gir den inkrementerte verdien for stoppverdien som er gitt. La oss nรฅ prรธve et eksempel for รฅ fรฅ den reduserte verdien i omrรฅdet gitt.

ร˜ke verdiene i omrรฅdet ved รฅ bruke et positivt trinn.

Parametersteget i range() kan brukes til รฅ รธke/minske verdiene. Som standard er det en positiv verdi 1. Sรฅ det vil alltid gi รธkte verdier.

Trinnverdien mรฅ vรฆre positiv hvis du vil ha รธkte verdier som utdata.

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

Utgang:

1 6 11 16 21 26

Reverse Range: Dekrementerer verdiene ved รฅ bruke negativt trinn

Parametertrinnet med negativ verdi i range() kan brukes til รฅ fรฅ dekrementerte verdier. I eksemplet nedenfor er trinnverdien negativ, slik at utgangen blir redusert fra den angitte omrรฅdeverdien.

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

Utgang:

15 14 13 12 11 10 9 8 7 6

Startverdien er 15, stoppverdien er 5 og trinnverdien er negativt tall dvs. -1. Med de ovennevnte inngangene vil range() funksjonen redusere verdien fra 15 og utover til den nรฅr stoppverdien, men her er forskjellen at den siste verdien vil vรฆre stopp + 1.

Bruke flytende tall i Python omrรฅde()

La oss nรฅ jobbe med omrรฅdet() ved รฅ bruke flyttall.

Eksempel:

for i in range(10.5):
    print(i, end =" ")

I eksemplet ovenfor har vi brukt stoppverdi som 10.5.

Utgangen 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 gir en feil da range()-funksjonen ikke stรธtter flyttall for start, stopp og trinn.

Bruker for-loop med Python omrรฅde()

I dette eksemplet vil vi bruke en matrise med tall, og la oss se hvordan vi bruker iterasjonen av matrisen inne for-loop ved รฅ bruke range()

Eksempel:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

Utgang:

MysqlMongodb PostgreSQL Firebase

I eksemplet ovenfor har vi brukt len(arr_list) som stoppverdi. For-lรธkken vil iterere til stoppverdien, dvs. lengden pรฅ arrayet, og det vil vรฆre 4, siden vi har fire elementer i arr_list. Startverdien vil vรฆre 0 og trinnet vil vรฆre 1. Sรฅ verdiene vil starte fra 0 og stoppe ved 3, dvs. lengden pรฅ array -1 som betyr 4 -1 = 3.

Ved hjelp av Python range() som en liste

I dette eksemplet vil du se hvordan du kan bruke utdataene fra omrรฅdet som en liste.

Eksempel:

print(list(range(10)))

Utgang:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Du kan se at utgangen er et listeformat. Det var ikke nรธdvendig รฅ slรธyfe range() og ved รฅ bruke list()-metoden kunne vi direkte konvertere utdataene fra omrรฅde til listeformat.

Bruke tegn i python-omrรฅdet()

Sรฅ langt har vi brukt heltall i python range(). Vi har ogsรฅ sett at flyttall ikke stรธttes i python-omrรฅdet. La oss prรธve รฅ se resultatet om hva som skjer nรฅr vi bruker tegn.

Eksempel:

for c in range ('z'):
        print(c, end =" ")

Utgang:

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 gir en feilmelding som sier at en streng ikke kan tolkes som et heltall.

For รฅ fรฅ listen over alfabetene kan du tilpasse koden og fรฅ รธnsket utgang 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)))

Utgang:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Slik fรฅr du tilgang til rekkeviddeelementer

Du kan bruke en for-lรธkke for รฅ hente verdiene fra omrรฅdet eller bruke indeksen for รฅ fรฅ tilgang til elementene fra range().

Bruker for-loop

Eksempel:

for i in range(6):
    print(i)

Utgang:

0
1
2
3
4
5

Bruker indeks

Indeksen brukes med rekkevidde for รฅ fรฅ verdien tilgjengelig pรฅ den posisjonen. Hvis omrรฅdeverdien er 5, for รฅ fรฅ startverdien, kan du bruke range(5)[0] og neste verdiomrรฅde(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)

Utgang:

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

Bruker liste()

Denne metoden vil skrive ut alle elementene fra range(). Ved รฅ bruke list() vil den returnere elementene fra range() i listeformat.

Eksempel:

print(list(range(10)))

Utgang:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Den gir listeutdata for omrรฅdet gitt.

Eksempel: Fรฅ partall med range()

Ved รฅ bruke range() fรฅr du listen over partall i omrรฅdet gitt som input. Parametrene for range() er, start er 2, stopp er 20, og trinn er 2, sรฅ verdiene vil รธkes med 2 og vil gi partall til stopp-2.

Eksempel:

for i in range(2, 20, 2):
    print(i, end =" ")

Utgang:

2 4 6 8 10 12 14 16 18

Slรฅ sammen to-range() utganger

I dette eksemplet vil 2 range() funksjoner settes sammen ved hjelp av itertools module chain() funksjon.

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=" ")

Utgang:

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

Bruke range() med NumPy

NumPy-modulen har en arange()-funksjon som fungerer og gir lignende utdata som range(). Arrangement() tar inn de samme parameterne som range().

Syntaks:

arange(start, stop, step)

Fรธlg trinnene nedenfor for รฅ jobbe med NumPy.

Trinn 1: Importer NumPy-modul

import numpy

I tilfelle under kjรธring, gir det en feilmelding som sier at numpy-modulen ikke ble funnet, mรฅ du installere modulen som vist i trinn 2.

Trinn 2: Installer NumPy

pip install numpy

Trinn 3: Arbeidseksempel pรฅ arange() ved bruk av NumPy

import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

Utgang:

0 1 2 3 4 5 6 7 8 9

Flytende kommatall som bruker NumPy arange()

Det er ikke mulig รฅ fรฅ flyttallssekvensen ved รฅ bruke range(), men det er mulig รฅ bruke NumPy arange().

Eksempel:

Omrรฅdet vi รธnsker er fra 0.5 til 1.5. Verdien vil รธke med 0.2.

import numpy as np 

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")        

Utgang:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Utgangen vi fรฅr er litt rar, noen av flyttallene vises med 16 desimaler. Dette skjer pรฅ grunn av kompleksiteten ved รฅ lagre flytende desimaltall i binรฆrt format. Du kan ogsรฅ runde av verdiene om nรธdvendig og begrense dem til desimalene du trenger.

Sammendrag

  • Python range() er en innebygd funksjon tilgjengelig med Python fra Python(3.x), og den gir en tallsekvens basert pรฅ start- og stoppindeksen som er gitt. I tilfelle startindeksen ikke er gitt, regnes indeksen som 0, og den vil รธke verdien til stoppindeksen.
  • Python range() er introdusert fra Python versjon 3, fรธr det var xrange() funksjonen.
  • Range() gir tallrekkefรธlgen og returnerer en liste med tall. xrange()-funksjonen gir et generatorobjekt som mรฅ slรธyfes i en for-lรธkke for รฅ fรฅ verdiene.
  • Parametersteget i range() kan brukes til รฅ รธke/minske verdiene. Som standard er det en positiv verdi 1. Sรฅ det vil alltid gi รธkte verdier.
  • Python gir en feil for flyttall ettersom range()-funksjonen kun stรธtter heltallsverdier.
  • Verdiene fra range() kan nรฅs ved รฅ bruke for-loop, ved รฅ bruke indeks og list()
  • NumPy-modulen har en arange()-funksjon som fungerer og gir lignende utdata som range(). Arange() tar inn de samme parameterne som range().
  • Det er mulig รฅ fรฅ flyttallssekvensen NumPy arange() som ikke stรธttes ved รฅ bruke range().

Oppsummer dette innlegget med: