„Python“ diapazonas () Funkcija: „Float“, „List“, kilpos pavyzdžiams

Kas yra „Python Range“?

„Python range“ () yra įmontuota funkcija, prieinama kartu su „Python“ iš „Python“ (3.x), ir ji suteikia skaičių seką pagal pateiktą pradžios ir pabaigos indeksą. Jei pradinis indeksas nepateikiamas, indeksas laikomas 0 ir padidins vertę 1 iki stop indekso.

Pavyzdžiui, diapazonas (5) išves jums reikšmes 0,1,2,3,4. „Python“ diapazonas () yra labai naudinga komanda ir dažniausiai naudojama, kai turite kartoti naudodami ciklą.

Šioje pamokoje sužinosite:

  • Kas yra „Python Range“?
  • Sintaksė
  • „Python“ diapazonas () Funkcija ir istorija
  • Naudojamas diapazonas ()
  • Pradžios ir pabaigos naudojimas diapazone ()
  • Naudojant start, stop ir step
  • Diapazono verčių padidinimas naudojant teigiamą žingsnį.
  • Atvirkštinis diapazonas: mažinant reikšmes naudojant neigiamą žingsnį.
  • Plaukiojančių skaičių naudojimas „Python“ diapazone ()
  • „For-loop“ naudojimas su „Python“ diapazonu ()
  • Naudojant „Python“ diapazoną () kaip sąrašą
  • Simbolių naudojimas pitono diapazone ()
  • Kaip pasiekti diapazono elementus
  • Pavyzdys: gaukite lyginius skaičius naudodami diapazoną ()
  • Dviejų diapazonų () išėjimų sujungimas
  • Range () naudojimas su NumPy

Sintaksė

range(start, stop, step)

Parametrai

  • pradžia: (neprivaloma) Pradžios indeksas yra sveikas skaičius, o jei jis nenurodytas, numatytoji vertė yra 0.
  • stop: Stop indeksas nustato vertę, nuo kurios diapazono funkcija turi sustoti. Tai yra privaloma diapazono funkcijos įvestis. Paskutinė vertė visada bus 1 mažesnė už stabdymo vertę.
  • žingsnis: (neprivaloma). Žingsnio vertė yra skaičius, pagal kurį turi būti padidintas kitas skaičiaus diapazonas. Pagal numatytuosius nustatymus tai yra 1.

Grąžinimo vertė:

Grąžinimo vertė yra skaičių seka nuo nurodyto pradžios iki pabaigos indekso.

„Python“ diapazonas () Funkcija ir istorija

„Python“ diapazonas () buvo įvestas iš 3 versijos „python“, prieš tai funkcija „xrange“).

Skaičių sekai sukurti naudojami diapazonas ir xrange ().

Toliau pateikiamas skirtumas tarp diapazono ir xrange ():

diapazonas() xrange ()
Diapazonas () pateikia skaičių seką ir pateikia skaičių sąrašą. Funkcija „xrange ()“ suteikia generatoriaus objektą, kurį reikia susieti „for-loop“, kad gautų reikšmes.
Diapazonas () pateikia sąrašą. xrange () pateikia generatoriaus objektą.
Range () metodas naudoja daugiau atminties, nes grąžinamas sąrašas turi būti saugomas, palyginti su xrange (). Kadangi xrange () grąžina generatoriaus objektą, jis akimirksniu neteikia reikšmių ir turi būti naudojamas „for-loop“ viduje norint gauti vertes.
Atminties naudojimas yra didesnis, todėl, vykdant didžiulį duomenų rinkinį, kodas vykdomas lėtai. Kodas vykdomas greičiau naudojant xrange ().

Naudojamas diapazonas ()

Šis pavyzdys parodo, kaip spausdinti reikšmes nuo 0 iki 9 naudojant diapazoną ().

Diapazone naudojama vertė yra 10, taigi išvestis yra 0 1 2 3 4 5 6 7 8 9

Kadangi pradžia neteikiama, pradžia laikoma 0, o paskutinė vertė pateikiama iki 9. Paskutinė reikšmė visada yra 1 mažesnė už nurodytą vertę, ty stop-1.

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

Išvestis:

0 1 2 3 4 5 6 7 8 9

Pradžios ir pabaigos naudojimas diapazone ()

Kode pradinė vertė yra 3, o sustojimo vertė yra 10. Čia pradžios indeksas yra 3, taigi skaičių seka prasidės nuo 3 iki sustojimo vertės. Paskutinė sekos reikšmė bus 1 mažesnė nei stabdymo vertė 10–1 = 9.

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

Išvestis:

3 4 5 6 7 8 9

Naudojant start, stop ir step

Pradinė vertė yra 3, taigi skaičių seka prasidės nuo 3. Stabdymo vertė yra 10, taigi skaičių seka sustos ties (10-1), ty 9. Žingsnis yra 2, taigi kiekviena sekos vertė bus Jei žingsnio reikšmė nepateikiama, žingsnio vertė pagal numatytuosius nustatymus yra 1.

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

Išvestis:

3 5 7 9

Iki šiol matėme, kaip funkcija range () suteikia padidintą nurodytos stop vertės reikšmę. Išbandykime pavyzdį, kaip gauti sumažintą vertę pateiktame diapazone.

Diapazono verčių padidinimas naudojant teigiamą žingsnį.

Parametrų žingsnis diapazone () gali būti naudojamas vertėms didinti / mažinti. Pagal numatytuosius nustatymus tai yra teigiama reikšmė 1. Taigi ji visada pateiks padidėjusias reikšmes.

Pakopos reikšmė turi būti teigiama, jei norite, kad padidintos reikšmės būtų atimtos.

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

Išvestis:

1 6 11 16 21 26

Atvirkštinis diapazonas: mažinant reikšmes naudojant neigiamą žingsnį.

Parametrų žingsnis su neigiama reikšme diapazone () gali būti naudojamas sumažintoms vertėms gauti. Žemiau pateiktame pavyzdyje žingsnio vertė yra neigiama, todėl išvestis bus sumažinta iš pateiktos diapazono vertės.

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

Išvestis:

15 14 13 12 11 10 9 8 7 6

Pradinė vertė yra 15, stabdymo vertė yra 5, o žingsnio vertė yra neigiamas skaičius, ty -1. Esant aukščiau įvesties diapazono () funkcija sumažins vertę nuo 15 iki tol, kol pasieks stabdymo vertę, bet čia skirtumas yra paskutinė reikšmė bus stop + 1.

Plaukiojančių skaičių naudojimas „Python“ diapazone ()

Dabar dirbkime su diapazonu () naudodami slankiojo kablelio skaičius.

Pavyzdys:

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

Aukščiau pateiktame pavyzdyje mes naudojome stabdymo vertę kaip 10,5.

Rezultatas yra:

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“ pateikia klaidą, nes funkcija range () nepalaiko slankiųjų kablelių skaičiaus pradžiai, sustojimui ir žingsniui.

„For-loop“ naudojimas su „Python“ diapazonu ()

Šiame pavyzdyje mes naudosime skaičių masyvą ir pažiūrėkime, kaip naudoti masyvo iteraciją viduje for-loop naudojant diapazoną ()

Pavyzdys:

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

Išvestis:

MysqlMongodb PostgreSQL Firebase

Aukščiau pateiktame pavyzdyje mes naudojome len (arr_list) kaip sustojimo vertę. „For“ ciklas kartos iki sustojimo vertės, ty masyvo ilgio ir bus 4, nes „arr_list“ turime keturis elementus. Pradinė vertė bus 0, o žingsnis bus 1. Taigi vertės prasidės nuo 0 ir sustos ties 3, ty masyvo -1 ilgis, reiškiantis 4 -1 = 3.

Naudojant „Python“ diapazoną () kaip sąrašą

Šiame pavyzdyje pamatysite, kaip išvestį iš diapazono panaudoti kaip sąrašą.

Pavyzdys:

print(list(range(10)))

Išvestis:

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

Galite pamatyti, kad išvestis yra sąrašo formatas. Nebuvo būtina kilpinti diapazoną () ir naudodami „list“ () metodą galėjome tiesiogiai konvertuoti išvestį iš diapazono į sąrašo formatą.

Simbolių naudojimas pitono diapazone ()

Iki šiol mes naudojome sveikųjų skaičių pitono diapazone (). Mes taip pat matėme, kad slankiųjų kablelių skaičiai nepalaikomi pitono diapazone. Pabandykime pamatyti rezultatą, kas nutinka, kai naudojame simbolius.

Pavyzdys:

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

Išvestis:

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

Tai sukelia klaidą sakydamas, kad eilutė negali būti interpretuojama kaip sveikasis skaičius.

Norėdami gauti abėcėlių sąrašą, galite tinkinti kodą ir gauti norimas išvestis, kaip parodyta žemiau:

Pavyzdys:

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

Išvestis:

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

Kaip pasiekti diapazono elementus

Galite naudoti „for-loop“, norėdami gauti reikšmes iš diapazono, arba naudoti indeksą, kad pasiektumėte elementus iš diapazono ().

Naudojant „for-loop“

Pavyzdys:

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

Išvestis:

012345

Naudojant indeksą

Indeksas naudojamas su diapazonu, norint gauti vertę, esančią toje pozicijoje. Jei diapazono vertė yra 5, norėdami gauti pradinę vertę, galite naudoti diapazoną (5) [0] ir kitą vertės diapazoną (5) [1] ir pan.

Pavyzdys:

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)

Išvestis:

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)

Naudojamas sąrašas ()

Šis metodas atspausdins visus elementus iš diapazono (). Naudojant sąrašą (), elementai iš diapazono () bus grąžinti sąrašo formatu.

Pavyzdys:

print(list(range(10)))

Išvestis:

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

Tai pateikia nurodyto diapazono sąrašo išvestį.

Pavyzdys: gaukite lyginius skaičius naudodami diapazoną ()

Naudojant diapazoną () bus gautas lyginių skaičių sąrašas diapazone, nurodytame kaip įvestis. Diapazono () parametrai yra: pradžia yra 2, sustojimas yra 20 ir žingsnis yra 2, taigi reikšmės bus padidintos 2 ir duos lyginius skaičius iki stop-2.

Pavyzdys:

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

Išvestis:

2 4 6 8 10 12 14 16 18

Dviejų diapazonų () išėjimų sujungimas

Šiame pavyzdyje bus sujungtos 2 diapazono () funkcijos, naudojant itertoolių modulio grandinės () funkciją.

Pavyzdys:

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

Išvestis:

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

Range () naudojimas su NumPy

NumPy modulis turi funkciją arange (), kuri veikia ir suteikia panašią išvestį, kaip diapazonas (). Organizuoti () turi tuos pačius parametrus, kaip diapazonas ().

Sintaksė:

arange(start, stop, step)

Norėdami dirbti su „NumPy“, atlikite toliau nurodytus veiksmus.

1 veiksmas : importuokite „NumPy“ modulį

import numpy

Įtraukti vykdant, pateikiama klaida sakant, kad „numpy“ modulis nerastas. Turite įdiegti modulį, kaip parodyta 2 veiksme.

2 žingsnis : įdiekite „NumPy“

pip install numpy

3 žingsnis : Darbinis „arange“ () pavyzdys naudojant „NumPy“

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

Išvestis:

0 1 2 3 4 5 6 7 8 9

Slankiųjų skaičių skaičiai naudojant „NumPy arange“ ()

Naudojant diapazoną () neįmanoma gauti slankiojo kablelio sekos, tačiau įmanoma naudojant NumPy arange ().

Pavyzdys:

Norimas diapazonas yra nuo 0,5 iki 1,5. Vertė bus padidinta 0,2.

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

Išvestis:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Gaunamas rezultatas yra šiek tiek keistas, kai kurie iš plūduriuojančių skaičių rodomi 16 dešimtųjų tikslumu. Taip atsitinka dėl sudėtingų dešimtainių slankiųjų skaičių saugojimo dvejetainiu formatu. Taip pat, jei reikia, galite suapvalinti vertes ir apriboti jas dešimtainiais skaičiais po kablelio.

Santrauka:

  • „Python range“ () yra įmontuota funkcija, prieinama kartu su „Python“ iš „Python“ (3.x), ir ji suteikia skaičių seką pagal pateiktą pradžios ir pabaigos indeksą. Jei pradinis indeksas nepateikiamas, indeksas laikomas 0 ir padidins vertę iki sustojimo indekso.
  • „Python“ diapazonas () buvo įvestas iš „Python“ 3 versijos, prieš tai funkcija „xrange“).
  • Diapazonas () pateikia skaičių seką ir pateikia skaičių sąrašą. Funkcija „xrange ()“ suteikia generatoriaus objektą, kurį reikia susieti „for-loop“, kad gautų reikšmes.
  • Parametrų žingsnis diapazone () gali būti naudojamas vertėms didinti / mažinti. Pagal numatytuosius nustatymus tai yra teigiama reikšmė 1. Taigi ji visada pateiks padidėjusias reikšmes.
  • „Python“ pateikia klaidingą slankiųjų kablelių skaičių, nes funkcija range () palaiko tik sveikųjų skaičių reikšmes.
  • Vertes iš diapazono () galima pasiekti naudojant „for-loop“, naudojant indeksą ir sąrašą ()
  • NumPy modulis turi funkciją arange (), kuri veikia ir suteikia panašią išvestį, kaip diapazonas (). „Arange“ () turi tuos pačius parametrus kaip ir diapazonas ().
  • Galima gauti slankiojo kablelio seką „NumPy arange“ (), kuri nepalaikoma naudojant diapazoną ().

Įdomios straipsniai...