Python-rekkevidde () Funksjon: Float, List, For loop-eksempler

Innholdsfortegnelse:

Anonim

Hva er Python Range?

Python range () er en innebygd funksjon tilgjengelig med Python fra Python (3.x), og den gir en sekvens av tall basert på start- og stoppindeksen gitt. Hvis startindeksen ikke er gitt, betraktes indeksen som 0, og den vil øke verdien med 1 til stoppindeksen.

For eksempel vil rekkevidde (5) gi deg verdier 0,1,2,3,4. Python-området () er en veldig nyttig kommando og brukes mest når du må iterere ved hjelp av for loop.

I denne opplæringen lærer du:

  • Hva er Python Range?
  • Syntaks
  • Python-rekkevidde () Funksjon og historie
  • Bruke rekkevidde ()
  • Bruke start og stopp innen rekkevidde ()
  • Ved hjelp av start, stopp og trinn
  • Øke verdiene i området ved hjelp av et positivt trinn.
  • Omvendt område: Reduksjon av verdiene ved hjelp av negativt trinn.
  • Bruke flytende tall i Python-området ()
  • Bruke for-loop med Python-rekkevidde ()
  • Bruker Python-serien () som en liste
  • Bruke tegn i pythonområdet ()
  • Hvordan få tilgang til rekkeviddeelementer
  • Eksempel: Få like tall ved hjelp av rekkevidde ()
  • Slå sammen to-rekke () utganger
  • Bruke rekkevidde () Med NumPy

Syntaks

range(start, stop, step)

Parametere

  • start: (valgfritt) Startindeksen er et helt tall, og hvis ikke gitt, er standardverdien 0.
  • stopp: Stoppindeksen bestemmer verdien som rekkeviddefunksjonen skal stoppe med. Det er en obligatorisk inngang til rekkevidde-funksjon. Den siste verdien vil alltid være 1 mindre enn stoppverdien.
  • trinn: (valgfritt). Trinnverdien er tallet som neste nummer i området må økes med, som standard er det 1.

Returverdi:

Returverdien er en sekvens av tall fra den gitte start-til-stopp-indeksen.

Python-rekkevidde () Funksjon og historie

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

Både rekkevidde og xrange () brukes til å produsere en sekvens av tall.

Følgende er forskjellen mellom rekkevidde og xrange ():

område() xrange ()
Området () gir tallrekkefølgen og returnerer en liste med tall. Funksjonen xrange () gir et generatorobjekt som må sløyfes i en for-loop for å få verdiene.
Området () returnerer en liste. xrange () returnerer et generatorobjekt.
Range () -metoden bruker mer minne ettersom den returnerte listen må lagres i forhold til xrange (). Når xrange () returnerer et generatorobjekt, gir det ikke verdier umiddelbart og må brukes inne i for-loop for å få verdiene.
Bruk av minne er mer, derfor blir kodeutførelsen treg når du arbeider med et stort datasett. Kodeutførelsen går raskere ved hjelp av xrange ().

Bruke rekkevidde ()

Dette eksemplet viser hvordan du skriver ut verdiene fra 0-9 ved hjelp av område ().

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

Siden starten ikke gis, regnes starten som 0 og den siste verdien blir 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 =" ")

Produksjon:

0 1 2 3 4 5 6 7 8 9

Bruke start og stopp innen 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 =" ")

Produksjon:

3 4 5 6 7 8 9

Ved hjelp av start, stopp og trinn

Startverdien er 3, så tallsekvensen starter ved 3. Stoppverdien er 10, så tallsekvensen stopper ved (10-1), dvs. 9. Trinnet er 2, så hver verdi i sekvensen vil økes med 2. Hvis trinnverdien ikke er gitt, er verdien for trinn standard 1.

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

Produksjon:

3 5 7 9

Så langt har vi sett hvordan rekkevidde () -funksjonen gir den økte verdien for den angitte stoppverdien. La oss nå prøve et eksempel for å få den reduserte verdien i det gitte området.

Øke verdiene i området ved hjelp av et positivt trinn.

Parametertrinnet i område () kan brukes til å øke / redusere verdiene. Som standard er det en positiv verdi 1. Så det vil alltid gi økte verdier.

Trinnverdien må være positiv i tilfelle du vil ha økte verdier som utgang.

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

Produksjon:

1 6 11 16 21 26

Omvendt område: Reduksjon av verdiene ved hjelp av negativt trinn.

Parametertrinnet med negativ verdi i området () kan brukes til å få reduserte verdier. I eksemplet nedenfor er trinnverdien negativ, så utdataene blir redusert fra den angitte områdeverdien.

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

Produksjon:

15 14 13 12 11 10 9 8 7 6

Startverdien er 15, stoppverdien er 5 og trinnverdien er negativt tall, dvs. -1. Med ovennevnte innganger vil funksjonen () redusere verdien fra 15 og utover til den når stoppverdien, men her er forskjellen den siste verdien vil være stopp + 1.

Bruke flytende tall i Python-området ()

La oss nå jobbe med området () ved hjelp av flytende tall.

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 for i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer

Python gir en feil da rekkevidden () ikke støtter flytende tall for start, stopp og trinn.

Bruke for-loop med Python-rekkevidde ()

I dette eksemplet vil vi bruke en rekke tall, og la oss se hvordan vi bruker iterere matrisen i for-loop ved hjelp av rekkevidde ()

Eksempel:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")

Produksjon:

MysqlMongodb PostgreSQL Firebase

I eksemplet ovenfor har vi brukt len ​​(arr_list) som stoppverdi. For-sløyfen vil gjenta til stoppverdien, dvs. lengden på matrisen, og den vil være 4, ettersom vi har fire elementer i arr_listen. Startverdien vil være 0 og trinn vil være 1. Så verdiene starter fra 0 og stopper ved 3 dvs. lengden på matrisen -1 som betyr 4 -1 = 3.

Bruker Python-serien () som en liste

I dette eksemplet vil du se hvordan du bruker utdataene fra området som en liste.

Eksempel:

print(list(range(10)))

Produksjon:

[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 rekkevidde () og ved å bruke list () -metoden kunne vi direkte konvertere utdata fra område til listeformat.

Bruke tegn i pythonområdet ()

Så langt har vi brukt heltall i python-området (). Vi har også sett at flytende punktnumre ikke støttes i pythonområ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 =" ")

Produksjon:

Traceback (most recent call last):File "python_range.py", line 1, in for c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer

Det kaster en feil som sier at en streng ikke kan tolkes som et heltall.

For å få listen over alfabeter kan du tilpasse koden og få ønsket utdata 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)))

Produksjon:

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

Hvordan få tilgang til rekkeviddeelementer

Du kan bruke en for-loop for å hente verdiene fra området eller bruke indeksen for å få tilgang til elementene fra området ().

Bruker for-loop

Eksempel:

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

Produksjon:

012345

Bruker indeks

Indeksen brukes med rekkevidde for å få verdien tilgjengelig på den posisjonen. Hvis rekkevidden er 5, for å få startverdien, kan du bruke område (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)

Produksjon:

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)

Bruke liste ()

Denne metoden vil skrive ut alle elementene fra området (). Ved å bruke liste () vil den returnere elementene fra rekkevidde () i listeformat.

Eksempel:

print(list(range(10)))

Produksjon:

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

Det gir listeutdata for det gitte området.

Eksempel: Få like tall ved hjelp av rekkevidde ()

Ved å bruke rekkevidde () får du listen over partallnumre i området gitt som inndata. Parametrene for område () er, start er 2, stopp er 20, og trinn er 2, så verdiene økes med 2 og vil gi like tall til stopp-2.

Eksempel:

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

Produksjon:

2 4 6 8 10 12 14 16 18

Slå sammen to-rekke () utganger

I dette eksemplet sammenkobles 2 range () -funksjoner ved hjelp av itertools module chain () -funksjon.

Eksempel:

from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")

Produksjon:

Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Bruke rekkevidde () Med NumPy

NumPy-modulen har arange () -funksjon som fungerer og gir lignende utdata som rekkevidde (). Arrangeringen () har de samme parametrene som rekkevidde ().

Syntaks:

arange(start, stop, step)

Følg trinnene nedenfor for å jobbe med NumPy.

Trinn 1 : Importer NumPy-modulen

import numpy

Incase mens utførelse, det gir en feil som sier numpy module ikke funnet, du må installere modulen som vist i trinn 2.

Trinn 2 : Installer NumPy

pip install numpy

Trinn 3 : Arbeidseksempel på arange () ved hjelp av NumPy

import numpy as npfor i in np.arange(10):print(i, end =" ")

Produksjon:

0 1 2 3 4 5 6 7 8 9

Flytende punktum ved hjelp av NumPy arange ()

Det er ikke mulig å få flytpunktsekvensen ved hjelp av rekkevidde (), men det er mulig å bruke NumPy-rekkevidde ().

Eksempel:

Området vi ønsker er fra 0,5 til 1,5. Verdien økes med 0,2.

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Produksjon:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Resultatet vi får er litt rart, noen av flottallene vises med 16 desimaler. Dette skjer på grunn av kompleksiteten ved å lagre desimale flytende tall i binært format. Du kan også runde 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 sekvens av tall basert på start- og stoppindeksen gitt. Hvis startindeksen ikke er gitt, betraktes indeksen som 0, og den vil øke verdien til stoppindeksen.
  • Python-serien () har blitt introdusert fra python versjon 3, før det var xrange () funksjonen.
  • Området () gir tallrekkefølgen og returnerer en liste med tall. Funksjonen xrange () gir et generatorobjekt som må sløyfes i en for-loop for å få verdiene.
  • Parametertrinnet i område () kan brukes til å øke / redusere verdiene. Som standard er det en positiv verdi 1. Så det vil alltid gi økte verdier.
  • Python gir en feil for flytende tall, da funksjonen for rekkevidde () støtter bare heltallverdier.
  • Verdiene fra område () kan nås ved hjelp av for-loop, ved hjelp av indeks og liste ()
  • NumPy-modulen har arange () -funksjon som fungerer og gir lignende utdata som rekkevidde (). Arange () tar i seg samme parametere som område ().
  • Det er mulig å få flytpunktsekvensen NumPy arange () som ikke støttes ved hjelp av rekkevidde ().