Python range() Funktsioon: ujuk, loend, tsükli näited

Mis on Python Vahemik?

Python range() on sisseehitatud funktsioon, mis on saadaval koos Python Alates Python(3.x) ja see annab numbrite jada, mis põhineb antud algus- ja lõppindeksil. Kui algusindeksit ei anta, loetakse indeksiks 0 ja see suurendab väärtust 1 võrra kuni stoppindeksini.

Näiteks vahemik(5) väljastab teile väärtused 0,1,2,3,4 .The Python range() on väga kasulik käsk ja seda kasutatakse enamasti siis, kui peate kordama tsüklit kasutades.

Süntaks

range(start, stop, step)

parameetrid

  • algus: (valikuline) Algindeks on täisarv ja kui seda pole antud, on vaikeväärtus 0.
  • peatus: Peatusindeks määrab väärtuse, mille juures vahemiku funktsioon peab peatuma. See on vahemiku funktsiooni kohustuslik sisend. Viimane väärtus on alati 1 võrra väiksem kui stoppväärtus.
  • samm: (valikuline). Sammu väärtus on arv, mille võrra tuleb vahemikku järgmist numbrit suurendada, vaikimisi on see 1.

Tagastusväärtus

Tagastusväärtus on numbrijada antud algusest lõpuni.

Python range() Funktsioon ja ajalugu

Python range() on kasutusele võetud Pythoni versioonist 3, enne seda oli funktsioon xrange().

Nii vahemikku kui ka xrange() kasutatakse numbrijada loomiseks.

Allpool on erinevus vahemiku ja xrange() vahel:

vahemik () xrange()
Vahemik () annab numbrite jada ja tagastab numbrite loendi. Funktsioon xrange() annab generaatoriobjekti, mis tuleb väärtuste saamiseks tsüklis for-loop.
Vahemik () tagastab loendi. xrange() tagastab generaatoriobjekti.
Meetod vahemik() kasutab rohkem mälu, kuna tagastatud loend tuleb salvestada võrreldes meetodiga xrange(). Kuna xrange() tagastab generaatoriobjekti, ei anna see väärtusi koheselt ja seda tuleb väärtuste saamiseks kasutada for-loopis.
Mälu kasutamine on suurem, mistõttu on koodi täitmine aeglane, kui töötate suure andmekogumiga. Koodi täitmine on kiirem, kasutades xrange().

Vahemiku () kasutamine

See näide näitab, kuidas printida väärtusi vahemikus 0–9, kasutades vahemikus().

Vahemikus kasutatav väärtus on 10, seega on väljund 0 1 2 3 4 5 6 7 8 9

Kuna starti ei anta, loetakse stardiks 0 ja viimaseks väärtuseks antakse kuni 9. Viimane väärtus on alati 1 võrra väiksem etteantud väärtusest ehk stop-1.

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

Väljund:

0 1 2 3 4 5 6 7 8 9

Start ja stop in range() kasutamine

Koodis on algusväärtus 3 ja lõppväärtus 10. Siin on algusindeks 3, seega numbrijada algab 3-st kuni lõppväärtuseni. Jada viimane väärtus on 1 võrra väiksem kui stoppväärtus 10-1 = 9.

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

Väljund:

3 4 5 6 7 8 9

Start, stop ja step kasutamine

Algväärtus on 3, seega numbrijada algab 3-st. Lõppväärtus on 10, seega numbrijada peatub (10-1) ehk 9 juures. Samm on 2, nii et jada iga väärtus suurendatakse 2 võrra. Kui sammu väärtust pole antud, on sammu väärtuseks vaikimisi 1.

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

Väljund:

3 5 7 9

Siiani oleme näinud, kuidas funktsioon range() annab antud stoppväärtuse suurendatud väärtuse. Proovime nüüd näidet, et saada vähendatud väärtus antud vahemikus.

Vahemiku väärtuste suurendamine positiivse sammu abil.

Parameetri sammu vahemikus () saab kasutada väärtuste suurendamiseks/vähendamiseks. Vaikimisi on see positiivne väärtus 1. Seega annab see alati suurenevaid väärtusi.

Sammu väärtus peab olema positiivne, kui soovite väljundina suurendada väärtusi.

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

Väljund:

1 6 11 16 21 26

Reverse Vahemik: väärtuste vähendamine negatiivse sammu abil

Negatiivse väärtusega parameetri sammu vahemikus range() saab kasutada vähendatud väärtuste saamiseks. Allolevas näites on astme väärtus negatiivne, nii et väljundit vähendatakse antud vahemiku väärtusest.

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

Väljund:

15 14 13 12 11 10 9 8 7 6

Algväärtus on 15, lõppväärtus on 5 ja astme väärtus on negatiivne arv, st -1. Ülaltoodud sisendite korral vähendab funktsioon vahemik() väärtust 15-st edasi, kuni see jõuab stoppväärtuseni, kuid siin on erinevus viimane väärtus stop + 1.

Ujuvate numbrite kasutamine Python vahemik ()

Töötame nüüd vahemiku () kallal, kasutades ujukoma numbreid.

Näide:

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

Ülaltoodud näites oleme kasutanud stoppväärtust kui 10.5.

Väljund on:

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 annab vea, kuna funktsioon range() ei toeta alguse, peatuse ja sammu ujukoma numbreid.

For-loopi kasutamine koos Python vahemik ()

Selles näites kasutame arvude massiivi ja vaatame, kuidas kasutada massiivi itereerimist for-loopis, kasutades vahemikus()

Näide:

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

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

Väljund:

MysqlMongodb PostgreSQL Firebase

Ülaltoodud näites kasutasime stoppväärtusena len(arr_list). Silmus for kordub kuni stoppväärtuseni, st massiivi pikkuseni ja see on 4, kuna meil on arr_listis neli elementi. Algväärtus on 0 ja samm on 1. Nii et väärtused algavad 0-st ja peatuvad 3-ga, st massiivi pikkus -1, mis tähendab 4 -1 = 3.

Kasutamine Python range() loendina

Selles näites näete, kuidas kasutada vahemiku väljundit loendina.

Näide:

print(list(range(10)))

Väljund:

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

Näete, et väljund on loendivormingus. Ei olnud vaja tsüklit vahemikus() ja kasutades list() meetodit, saime väljundi otse vahemikust loendivormingusse teisendada.

Märkide kasutamine vahemikus python range()

Seni oleme kasutanud täisarve vahemikus python range(). Samuti oleme näinud, et ujukoma numbreid Pythoni vahemikus ei toetata. Proovime vaadata väljundit selle kohta, mis juhtub, kui kasutame märke.

Näide:

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

Väljund:

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

See annab vea, öeldes, et stringi ei saa tõlgendada täisarvuna.

Tähestiku loendi saamiseks saate koodi kohandada ja saada soovitud väljundid allpool näidatud kujul:

Näide:

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

Väljund:

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

Vahemiku elementidele juurdepääsemine

Saate kasutada tsüklit for-loop väärtuste saamiseks vahemikust või kasutada indeksit, et pääseda juurde vahemiku() elementidele.

For-loopi kasutamine

Näide:

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

Väljund:

0
1
2
3
4
5

Indeksi kasutamine

Indeksit kasutatakse vahemikuga, et saada sellel positsioonil saadaolev väärtus. Kui vahemiku väärtus on 5, saate algusväärtuse saamiseks kasutada vahemikku (5)[0] ja järgmise väärtuse vahemikku (5)[1] jne.

Näide:

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)

Väljund:

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

List() kasutamine

See meetod prindib kõik elemendid vahemikust (). Kasutades list() tagastab see elemendid vahemikust() loendivormingus.

Näide:

print(list(range(10)))

Väljund:

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

See annab antud vahemiku loendiväljundi.

Näide: hankige paarisarvud, kasutades vahemikus ()

Vahemik() võimaldab saada sisendiks antud vahemiku paarisarvude loendi. Vahemiku() parameetrid on: start on 2, stop on 20 ja samm on 2, nii et väärtusi suurendatakse 2 võrra ja need annavad paarisarvud kuni stop-2.

Näide:

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

Väljund:

2 4 6 8 10 12 14 16 18

Kahe vahemiku () väljundite ühendamine

Selles näites ühendab funktsiooni itertools mooduli chain() abil 2 funktsiooni vahemikus().

Näide:

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

Väljund:

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

Vahemiku () kasutamine koos NumPyga

NumPy moodulil on arange() funktsioon, mis töötab ja annab sarnase väljundi nagu vahemik(). Arrange() võtab samad parameetrid nagu vahemik().

süntaksit:

arange(start, stop, step)

NumPyga töötamiseks järgige alltoodud samme.

Samm 1: NumPy mooduli importimine

import numpy

Juhul, kui käivitamisel kuvatakse tõrketeade, mis ütleb, et numpy moodulit ei leitud, peate mooduli installima, nagu on näidatud sammus 2.

Samm 2: installige NumPy

pip install numpy

Samm 3: NumPy abil arange() töönäide

import numpy as np 

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

Väljund:

0 1 2 3 4 5 6 7 8 9

Ujukoma numbrid NumPy arange() abil

Ujukomajada ei ole võimalik saada kasutades range(), kuid see on võimalik NumPy arange() abil.

Näide:

Soovitud vahemik on 0.5–1.5. Väärtust suurendatakse 0.2 võrra.

import numpy as np 

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

Väljund:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Saadud väljund on pisut veider, mõned ujukarvud on näidatud 16 kümnendkohaga. See juhtub kümnendarvude binaarvormingusse salvestamise keerukuse tõttu. Vajadusel saate väärtusi ka ümardada ja piirata neid vajalike kümnendkohtadega.

kokkuvõte

  • Python range() on sisseehitatud funktsioon, mis on saadaval koos Python Alates Python(3.x) ja see annab numbrite jada, mis põhineb antud algus- ja lõppindeksil. Kui algusindeksit ei ole antud, loetakse indeksiks 0 ja see suurendab väärtust kuni stoppindeksini.
  • Python range() on kasutusele võetud alates Pythoni versioon 3, enne seda oli funktsioon xrange().
  • Vahemik () annab numbrite jada ja tagastab numbrite loendi. Funktsioon xrange() annab generaatoriobjekti, mis tuleb väärtuste saamiseks tsüklis for-loop.
  • Parameetri sammu vahemikus () saab kasutada väärtuste suurendamiseks/vähendamiseks. Vaikimisi on see positiivne väärtus 1. Seega annab see alati suurenevaid väärtusi.
  • Python annab ujukomaarvude puhul vea, kuna funktsioon range() toetab ainult täisarvu väärtusi.
  • Vahemiku() väärtustele pääseb juurde kasutades for-loop, kasutades indeksit ja list()
  • NumPy moodulil on arange() funktsioon, mis töötab ja annab sarnase väljundi nagu vahemik(). Arange() võtab samad parameetrid kui range().
  • Range() abil on võimalik saada ujukomajada NumPy arange(), mida ei toetata.

Võta see postitus kokku järgmiselt: