Python range() Funktion: Float, List, For loop Exempel

Vad รคr Python Rรคckvidd?

Python range() รคr en inbyggd funktion tillgรคnglig med Python frรฅn Python(3.x), och det ger en sekvens av siffror baserat pรฅ det angivna start- och stoppindexet. Om startindexet inte anges anses indexet vara 0, och det kommer att รถka vรคrdet med 1 till stoppindexet.

Till exempel kommer range(5) att mata ut vรคrdena 0,1,2,3,4 .The Python range() รคr ett mycket anvรคndbart kommando och anvรคnds oftast nรคr du mรฅste iterera med fรถr loop.

syntax

range(start, stop, step)

Driftparametrar

  • Start: (valfritt) Startindexet รคr ett heltal, och om det inte anges รคr standardvรคrdet 0.
  • sluta: Stoppindexet bestรคmmer vid vilket vรคrde intervallfunktionen ska stanna. Det รคr en obligatorisk ingรฅng till intervallfunktionen. Det sista vรคrdet kommer alltid att vara 1 mindre รคn stoppvรคrdet.
  • steg: (valfritt). Stegvรคrdet รคr talet med vilket nรคsta nummer i intervallet mรฅste รถkas, som standard รคr det 1.

Returvรคrde

Returvรคrdet รคr en sekvens av tal frรฅn det givna start-till-stopp-indexet.

Python range() Funktion och historik

Python range() har introducerats frรฅn python version 3, innan dess var xrange() funktionen.

Bรฅde range och xrange() anvรคnds fรถr att producera en talfรถljd.

Fรถljande รคr skillnaden mellan range och xrange():

rรคckvidd() xrange()
Range() ger talfรถljden och returnerar en lista med tal. Funktionen xrange() ger ett generatorobjekt som mรฅste loopas i en for-loop fรถr att fรฅ vรคrdena.
Range() returnerar en lista. xrange() returnerar ett generatorobjekt.
Metoden range() anvรคnder mer minne eftersom listan som returneras mรฅste lagras i jรคmfรถrelse med xrange(). Eftersom xrange() returnerar ett generatorobjekt, ger det inte vรคrden direkt och mรฅste anvรคndas inuti for-loop fรถr att fรฅ vรคrdena.
Minnesanvรคndningen รคr mer, dรคrfรถr รคr kodens exekvering lรฅngsam nรคr man arbetar med en enorm uppsรคttning data. Kodexekveringen รคr snabbare med xrange().

Anvรคnder range()

Det hรคr exemplet visar hur man skriver ut vรคrdena frรฅn 0-9 med range().

Vรคrdet som anvรคnds i intervallet รคr 10, sรฅ utsignalen รคr 0 1 2 3 4 5 6 7 8 9

Eftersom starten inte ges anses starten som 0 och det sista vรคrdet ges till 9. Det sista vรคrdet รคr alltid 1 mindre รคn det givna 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รคnder start och stopp i intervallet()

I koden รคr startvรคrdet 3, och stoppvรคrdet รคr 10. Hรคr รคr startindexet 3, sรฅ talfรถljden bรถrjar frรฅn 3 till stoppvรคrdet. Det sista vรคrdet i sekvensen kommer att vara 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

Anvรคnder start, stop och step

Startvรคrdet รคr 3, sรฅ talfรถljden bรถrjar vid 3. Stoppvรคrdet รคr 10, sรฅ talfรถljden stannar vid (10-1) dvs. 9. Steget รคr 2, sรฅ varje vรคrde i sekvensen รถkas med 2. Om stegvรคrdet inte anges รคr vรค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 inkrementerade vรคrdet fรถr det angivna stoppvรคrdet. Lรฅt oss nu fรถrsรถka med ett exempel fรถr att fรฅ det dekrementerade vรคrdet i det angivna intervallet.

ร–ka vรคrdena inom intervallet med ett positivt steg.

Parametersteget i range() kan anvรคndas fรถr att รถka/minska vรคrdena. Som standard รคr det ett positivt vรคrde 1. Sรฅ det kommer alltid att ge inkrementerade vรคrden.

Stegvรคrdet mรฅste vara positivt om du vill ha รถkade vรคrden som utdata.

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

Produktion:

1 6 11 16 21 26

Reverse Range: Minska vรคrdena med negativa steg

Parametersteget med negativt vรคrde i range() kan anvรคndas fรถr att fรฅ dekrementerade vรคrden. I exemplet nedan รคr stegvรคrdet negativt sรฅ utsignalen kommer att 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 negativt tal dvs -1. Med ovanstรฅende ingรฅngar kommer range()-funktionen att minska vรคrdet frรฅn 15 och framรฅt tills den nรฅr stoppvรคrdet, men hรคr รคr skillnaden att det sista vรคrdet blir stop + 1.

Anvรคnder flytande tal i Python rรคckvidd()

Lรฅt oss nu arbeta med range() med flyttal.

Exempel:

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

I exemplet ovan har vi anvรคnt stoppvรคrdet som 10.5.

Utgรฅngen รคr:

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

Anvรคnder for-loop med Python rรคckvidd()

I det hรคr exemplet kommer vi att anvรคnda en array med tal och lรฅt oss se hur man anvรคnder iterationen av arrayen inuti for-loop med range()

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 kommer att iterera till stoppvรคrdet, dvs lรคngden pรฅ arrayen och det blir 4, eftersom vi har fyra objekt i arr_listan. Startvรคrdet kommer att vara 0 och steget kommer att vara 1. Sรฅ vรคrdena bรถrjar frรฅn 0 och stannar vid 3, dvs lรคngden pรฅ array -1 vilket betyder 4 -1 = 3.

Anvรคnda Python range() som en lista

I det hรคr exemplet kommer vi att se 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 resultatet รคr ett listformat. Det var inte nรถdvรคndigt att loopa range() och med hjรคlp av list()-metoden kunde vi direkt konvertera utdata frรฅn range till listformat.

Anvรคnda tecken i python range()

Hittills har vi anvรคnt heltal i python range(). Vi har ocksรฅ sett att flyttalsnummer inte stรถds i python-intervallet. 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 <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

Det ger ett fel som sรคger att en strรคng inte kan tolkas som ett heltal.

Fรถr att fรฅ listan รถver alfabeten 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 man kommer รฅt Range Elements

Du kan anvรคnda en for-loop fรถr att fรฅ vรคrdena frรฅn omrรฅdet eller anvรคnda indexet fรถr att komma รฅt elementen frรฅn range().

Anvรคnder for-loop

Exempel:

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

Produktion:

0
1
2
3
4
5

Anvรคnder 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 range(5)[0] och nรคsta vรคrde range(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:

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

Anvรคnder list()

Denna metod kommer att skriva ut alla element frรฅn range(). Genom att anvรคnda list() returneras elementen frรฅn range() i listformat.

Exempel:

print(list(range(10)))

Produktion:

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

Det ger listutdata fรถr det angivna intervallet.

Exempel: Fรฅ jรคmna tal med range()

Om du anvรคnder range() fรฅr du listan รถver jรคmna tal i intervallet som anges som indata. Parametrarna fรถr range() รคr, start รคr 2, stopp รคr 20 och steg รคr 2, sรฅ vรคrdena kommer att รถkas med 2 och ger jรคmna tal till stopp-2.

Exempel:

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

Produktion:

2 4 6 8 10 12 14 16 18

Sammanfogar tvรฅ-intervall()-utgรฅngar

I det hรคr exemplet kommer 2 range() funktioner att sammanfogas med hjรคlp av itertools module chain() funktion.

Exempel:

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

Produktion:

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

Anvรคnder range() med NumPy

NumPy-modulen har en funktion arange() som fungerar och ger liknande utdata som range(). Arrange() tar in samma parametrar som range().

Syntax:

arange(start, stop, step)

Fรถr att arbeta med NumPy fรถlj stegen nedan.

steg 1: Importera NumPy-modul

import numpy

Om det under kรถrning ger ett felmeddelande som sรคger att numpy-modulen inte hittades, mรฅste du installera modulen som visas i steg 2.

steg 2: Installera NumPy

pip install numpy

steg 3: Arbetsexempel pรฅ arange() med NumPy

import numpy as np 

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

Produktion:

0 1 2 3 4 5 6 7 8 9

Flyttal med hjรคlp av NumPy arange()

Det รคr inte mรถjligt att fรฅ flyttalssekvensen med range(), men det รคr mรถjligt med NumPy arange().

Exempel:

Det intervall vi vill ha รคr frรฅn 0.5 till 1.5. Vรคrdet kommer att รถka med 0.2.

import numpy as np 

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

Produktion:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Resultatet vi fรฅr รคr lite konstigt, vissa av flyttalen visas med 16 decimaler. Detta hรคnder pรฅ grund av komplexiteten i att lagra decimala flytande tal i binรคrt format. Du kan รคven runda av vรคrdena om det behรถvs och begrรคnsa dem till de decimaler du behรถver.

Sammanfattning

  • Python range() รคr en inbyggd funktion tillgรคnglig med Python frรฅn Python(3.x), och det ger en sekvens av siffror baserat pรฅ start- och stoppindex som anges. Om startindexet inte anges anses indexet vara 0, och det kommer att รถka vรคrdet till stoppindexet.
  • Python range() har introducerats frรฅn Python version 3, innan dess var xrange() funktionen.
  • Range() ger talfรถljden och returnerar en lista med tal. Funktionen xrange() ger ett generatorobjekt som mรฅste loopas i en for-loop fรถr att fรฅ vรคrdena.
  • Parametersteget i range() kan anvรคndas fรถr att รถka/minska vรคrdena. Som standard รคr det ett positivt vรคrde 1. Sรฅ det kommer alltid att ge inkrementerade vรคrden.
  • Python ger ett fel fรถr flyttal eftersom range()-funktionen endast stรถder heltalsvรคrden.
  • Vรคrdena frรฅn range() kan nรฅs med for-loop, med index och list()
  • NumPy-modulen har en funktion arange() som fungerar och ger liknande utdata som range(). arange() tar in samma parametrar som range().
  • Det รคr mรถjligt att fรฅ flyttalssekvensen NumPy arange() som inte stรถds med range().

Sammanfatta detta inlรคgg med: