Python-intervall () Funktion: Float, List, For loop-exempel

Innehållsförteckning:

Anonim

Vad är Python Range?

Python range () är en inbyggd funktion som finns tillgänglig med Python från Python (3.x), och den ger en sekvens av siffror baserat på det angivna start- och stoppindexet. Om startindex inte ges, betraktas indexet som 0 och det kommer att öka värdet med 1 till stoppindexet.

Till exempel kommer intervall (5) att mata ut värdena 0,1,2,3,4. Python-intervallet () är ett mycket användbart kommando och används mest när du måste iterera med hjälp av for loop.

I den här handledningen lär du dig:

  • Vad är Python Range?
  • Syntax
  • Python-intervall () Funktion och historik
  • Använda intervall ()
  • Använda start och stopp inom räckvidd ()
  • Med start, stopp och steg
  • Öka värdena i intervallet med ett positivt steg.
  • Omvänd intervall: Minska värdena med negativt steg.
  • Använda flytande nummer i Python-intervallet ()
  • Använda for-loop med Python-intervall ()
  • Använda Python-intervall () som en lista
  • Använda tecken i pythonintervall ()
  • Hur du får åtkomst till räckviddselement
  • Exempel: Få jämna siffror med intervall ()
  • Sammanfoga utgångar med två intervall ()
  • Använda intervall () med NumPy

Syntax

range(start, stop, step)

Parametrar

  • start: (valfritt) Startindexet är ett heltal och om det inte ges är standardvärdet 0.
  • stopp: Stoppindexet bestämmer värdet vid vilket intervallfunktionen måste stoppas. Det är en obligatorisk ingång till intervallfunktion. Det sista värdet kommer alltid att vara 1 mindre än stoppvärdet.
  • steg: (valfritt). Stegvärdet är det nummer som nästa nummer inom intervallet måste ökas, som standard är det 1.

Returvärde:

Returvärdet är en sekvens av siffror från det givna början till stopp-indexet.

Python-intervall () Funktion och historik

Python-intervallet () har introducerats från pythonversion 3, innan det var xrange () funktionen.

Både intervall och xrange () används för att producera en sekvens av siffror.

Följande är skillnaden mellan intervall och xrange ():

räckvidd() xrange ()
Området () ger nummersekvensen och returnerar en lista med siffror. Funktionen xrange () ger ett generatorobjekt som måste slingas i en for-loop för att få värdena.
Området () returnerar en lista. xrange () returnerar ett generatorobjekt.
Range () -metoden använder mer minne eftersom den returnerade listan måste lagras i jämförelse med xrange (). När xrange () returnerar ett generatorobjekt, ger det inte värden direkt och måste användas inuti for-loop för att få värdena.
Användningen av minne är mer därför kodkörningen är långsam när man arbetar med en enorm uppsättning data. Kodkörningen går snabbare med xrange ().

Använda intervall ()

Det här exemplet visar hur man skriver ut värdena från 0-9 med intervall ().

Värdet som används inom intervallet är 10, så utgången är 0 1 2 3 4 5 6 7 8 9

Eftersom starten inte ges, betraktas start som 0 och det sista värdet ges till 9. Det sista värdet är alltid 1 mindre än det angivna värdet, dvs. stopp-1.

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

Produktion:

0 1 2 3 4 5 6 7 8 9

Använda start och stopp inom räckvidd ()

I koden är startvärdet 3 och stoppvärdet 10. Här är startindexet 3, så nummersekvensen börjar från 3 till stoppvärdet. Det sista värdet i sekvensen blir 1 mindre än stoppvärdet 10-1 = 9.

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

Produktion:

3 4 5 6 7 8 9

Med start, stopp och steg

Startvärdet är 3, så nummersekvensen börjar vid 3. Stoppvärdet är 10, så nummersekvensen kommer att sluta vid (10-1) dvs 9. Steget är 2, så varje värde i sekvensen kommer att ökas med 2. Om stegvärdet inte ges, är standardvärdet för steg som standard 1.

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

Produktion:

3 5 7 9

Hittills har vi sett hur range () -funktionen ger det ökade värdet för det angivna stoppvärdet. Låt oss nu prova ett exempel för att få det minskade värdet i det angivna intervallet.

Öka värdena i intervallet med ett positivt steg.

Parametersteget i intervall () kan användas för att öka / minska värdena. Som standard är det ett positivt värde 1. Så det ger alltid inkrementerade värden.

Stegvärdet måste vara positivt i det fall du vill att inkrementerade värden ska vara ouput.

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

Produktion:

1 6 11 16 21 26

Omvänd intervall: Minska värdena med negativt steg.

Parametersteget med negativt värde inom intervallet () kan användas för att få dekrementerade värden. I exemplet nedan är stegvärdet negativt så att utdata minskas från det angivna intervallvärdet.

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

Produktion:

15 14 13 12 11 10 9 8 7 6

Startvärdet är 15, stoppvärdet är 5 och stegvärdet är ett negativt tal, dvs. -1. Med ovanstående ingångsintervall () minskar funktionen värdet från 15 och framåt tills det når stoppvärdet, men här är skillnaden det sista värdet kommer att vara stopp + 1.

Använda flytande nummer i Python-intervallet ()

Låt oss nu arbeta på intervallet () med hjälp av flytpunktsnummer.

Exempel:

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

I ovanstående exempel har vi använt stoppvärde som 10,5.

Utgången är:

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 ger ett fel eftersom funktionen range () inte stöder flytpunktsnummer för start, stopp och steg.

Använda for-loop med Python-intervall ()

I det här exemplet kommer vi att använda en rad med siffror och låt oss se hur man använder iterera matrisen inuti for-loop med hjälp av intervall ()

Exempel:

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

Produktion:

MysqlMongodb PostgreSQL Firebase

I exemplet ovan har vi använt len ​​(arr_list) som stoppvärde. For-slingan upprepas till stoppvärdet, dvs längden på matrisen och det blir 4, eftersom vi har fyra objekt i arr_listan. Startvärdet kommer att vara 0 och steget blir 1. Så värdena börjar från 0 och kommer att sluta vid 3 dvs längden på matrisen -1 vilket betyder 4 -1 = 3.

Använda Python-intervall () som en lista

I det här exemplet ser vi hur man använder utdata från intervall som en lista.

Exempel:

print(list(range(10)))

Produktion:

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

Du kan se att utdata är ett listformat. Det var inte nödvändigt att slinga intervallet () och med list () -metoden kunde vi direkt konvertera utdata från intervall till listformat.

Använda tecken i pythonintervall ()

Hittills har vi använt heltal i pythonintervall (). Vi har också sett att siffror med flytande punkt inte stöds i pythonintervall. Låt oss försöka se resultatet om vad som händer när vi använder tecken.

Exempel:

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

Produktion:

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 kastar ett fel som säger att en sträng inte kan tolkas som ett heltal.

För att få en lista över alfabet kan du anpassa koden och få önskad utdata som visas nedan:

Exempel:

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

Produktion:

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

Hur du får åtkomst till räckviddselement

Du kan använda en for-loop för att få värdena från intervallet eller använda indexet för att komma åt elementen från intervallet ().

Använda for-loop

Exempel:

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

Produktion:

012345

Använda index

Indexet används med intervall för att få värdet tillgängligt på den positionen. Om intervallvärdet är 5, för att få startvärdet, kan du använda intervall (5) [0] och nästa värdeintervall (5) [1] och så vidare.

Exempel:

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)

Produktion:

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)

Använda lista ()

Denna metod kommer att skriva ut alla element från intervallet (). Med hjälp av list () returneras elementen från intervall () i listformat.

Exempel:

print(list(range(10)))

Produktion:

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

Det ger listutmatningen för det angivna intervallet.

Exempel: Få jämna siffror med intervall ()

Genom att använda intervall () får du en lista över jämna siffror i intervallet som anges som inmatning. Parametrarna för intervall () är, start är 2, stopp är 20 och steg är 2, så värdena ökas med 2 och ger jämna siffror till stopp-2.

Exempel:

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

Produktion:

2 4 6 8 10 12 14 16 18

Sammanfoga utgångar med två intervall ()

I det här exemplet sammanfogas 2 range () -funktioner med hjälp av itertools module chain () -funktionen.

Exempel:

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

Produktion:

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

Använda intervall () med NumPy

NumPy-modulen har arange () -funktion som fungerar och ger liknande output som intervall (). Arrangemanget () har samma parametrar som intervall ().

Syntax:

arange(start, stop, step)

Följ stegen nedan för att arbeta med NumPy.

Steg 1 : Importera NumPy-modulen

import numpy

Incase under körning, det ger ett fel som säger att numpy-modulen inte hittades, du måste installera modulen som visas i steg 2.

Steg 2 : Installera NumPy

pip install numpy

Steg 3 : Arbetsexempel på arange () med NumPy

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

Produktion:

0 1 2 3 4 5 6 7 8 9

Flytpunktsnummer med NumPy arange ()

Det är inte möjligt att få flytpunktssekvensen med hjälp av intervall (), men det är möjligt att använda NumPy-arange ().

Exempel:

Det intervall som vi vill ha är från 0,5 till 1,5. Värdet ökas med 0,2.

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

Produktion:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Utgången vi får är lite konstig, några av floatnumren visas med 16 decimaler. Detta händer på grund av komplexiteten i att lagra decimala flytande nummer i binärt format. Du kan också avrunda värdena om det behövs och begränsa dem till decimalerna du behöver.

Sammanfattning:

  • Python range () är en inbyggd funktion som finns tillgänglig med Python från Python (3.x), och den ger en sekvens av siffror baserat på det angivna start- och stoppindexet. Om startindex inte ges betraktas indexet som 0 och det kommer att öka värdet till stoppindexet.
  • Python-intervallet () har introducerats från pythonversion 3, innan det var xrange () som funktionen.
  • Området () ger nummersekvensen och returnerar en lista med siffror. Funktionen xrange () ger ett generatorobjekt som måste slingas i en for-loop för att få värdena.
  • Parametersteget i intervall () kan användas för att öka / minska värdena. Som standard är det ett positivt värde 1. Så det ger alltid inkrementerade värden.
  • Python ger ett fel för flytande nummer eftersom funktionen range () endast stöder helvärden.
  • Värdena från intervall () kan nås med hjälp av for-loop, med index och list ()
  • NumPy-modulen har arange () -funktion som fungerar och ger liknande output som intervall (). Arange () tar samma parametrar som intervall ().
  • Det är möjligt att få den flytande punktsekvensen NumPy arange () som inte stöds med intervall ().