Python range () Funkcia: Float, List, For Loops Príklady

Obsah:

Anonim

Čo je rozsah Pythonu?

Python range () je vstavaná funkcia dostupná pre Python z Pythonu (3.x) a poskytuje postupnosť čísel na základe daného počiatočného a konečného indexu. Ak nie je uvedený začiatočný index, bude sa index považovať za 0 a bude zvyšovať hodnotu o 1 až po zastavovací index.

Napríklad rozsah (5) bude mať na výstupe hodnoty 0,1,2,3,4. Rozsah Python () je veľmi užitočný príkaz a väčšinou sa používa, keď musíte iterovať pomocou cyklu for.

V tomto návode sa dozviete:

  • Čo je rozsah Pythonu?
  • Syntax
  • Python range () Funkcia a história
  • Použitie rozsahu ()
  • Použitie parametrov start and stop v rozsahu ()
  • Pomocou štart, stop a krok
  • Zvyšovanie hodnôt v rozsahu pomocou pozitívneho kroku.
  • Obrátený rozsah: Snižovanie hodnôt pomocou záporného kroku.
  • Používanie plávajúcich čísel v rozsahu Pythonu ()
  • Použitie cyklu for-loop s rozsahom Python ()
  • Použitie Pythonu range () ako zoznamu
  • Používanie znakov v rozsahu pythonu ()
  • Ako získať prístup k prvkom rozsahu
  • Príklad: Získajte párne čísla pomocou rozsahu ()
  • Zlúčenie výstupov s dvoma rozsahmi ()
  • Používanie rozsahu () s NumPy

Syntax

range(start, stop, step)

Parametre

  • start: (voliteľné) Počiatočný index je celé číslo a ak nie je uvedený, predvolená hodnota je 0.
  • stop: Stop index určuje hodnotu, pri ktorej sa musí zastaviť funkcia rozsahu. Je to povinný vstup do rozsahu funkcií. Posledná hodnota bude vždy o 1 menšia ako konečná hodnota.
  • krok: (voliteľné). Hodnota kroku je číslo, o ktoré sa musí zvýšiť ďalšie číslo rozsahu, v predvolenom nastavení je to 1.

Návratová hodnota:

Návratová hodnota je postupnosť čísel od daného začiatku do konca indexu.

Python range () Funkcia a história

Rozsah Python () bol zavedený od verzie 3 v Pythone, predtým bola funkciou xrange ().

Range aj xrange () sa používajú na vytvorenie postupnosti čísel.

Nasleduje rozdiel medzi rozsahom a xrange ():

rozsah () xrange ()
Range () udáva postupnosť čísel a vracia zoznam čísel. Funkcia xrange () dáva objektu generátora, ktorý je potrebné zacykliť do cyklu for-loop, aby sa získali hodnoty.
Range () vráti zoznam. xrange () vráti objekt generátora.
Metóda range () využíva viac pamäte, pretože vrátený zoznam musí byť uložený v porovnaní s xrange (). Keď funkcia xrange () vráti objekt generátora, nedáva hodnoty okamžite a na získanie hodnôt sa musí použiť vo vnútri cyklu for-loop.
Využitie pamäte je tým viac, že ​​vykonávanie kódu je pri práci na veľkej množine údajov pomalé. Vykonanie kódu je rýchlejšie pomocou xrange ().

Použitie rozsahu ()

Tento príklad ukazuje, ako tlačiť hodnoty od 0 do 9 pomocou rozsahu ().

Hodnota použitá v rozsahu je 10, takže výstup je 0 1 2 3 4 5 6 7 8 9

Pretože štart nie je uvedený, považuje sa štart za 0 a posledná hodnota sa uvádza do 9. Posledná hodnota je vždy o 1 menšia ako daná hodnota, tj. Stop-1.

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

Výkon:

0 1 2 3 4 5 6 7 8 9

Použitie parametrov start and stop v rozsahu ()

V kóde je počiatočná hodnota 3 a stop hodnota 10. Tu je počiatočný index 3, takže sekvencia čísel bude začínať od 3 do stop hodnoty. Posledná hodnota v poradí bude o 1 menšia ako konečná hodnota 10-1 = 9.

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

Výkon:

3 4 5 6 7 8 9

Pomocou štart, stop a krok

Počiatočná hodnota je 3, takže postupnosť čísel bude začínať číslom 3. Hodnota zastavenia je 10, takže postupnosť čísel sa zastaví na hodnote (10-1), tj 9. Krok je 2, takže každá hodnota v poradí bude byť zvýšený o 2. Ak nie je zadaná hodnota kroku, hodnota pre krok je predvolená na 1.

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

Výkon:

3 5 7 9

Doteraz sme videli, ako funkcia range () dáva zvýšenú hodnotu pre danú stop hodnotu. Skúsme teraz príklad, ako získať zmenšenú hodnotu v danom rozsahu.

Zvyšovanie hodnôt v rozsahu pomocou pozitívneho kroku.

Krok parametra v rozsahu () je možné použiť na zvýšenie alebo zníženie hodnôt. Predvolene je to kladná hodnota 1. Takže bude vždy dávať prírastkové hodnoty.

Hodnota kroku musí byť kladná, ak chcete, aby boli zvýšené hodnoty ako výstup.

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

Výkon:

1 6 11 16 21 26

Obrátený rozsah: Snižovanie hodnôt pomocou záporného kroku.

Krok parametra so zápornou hodnotou v rozsahu () možno použiť na získanie znížených hodnôt. V príklade nižšie je kroková hodnota záporná, takže výstup bude znížený od danej hodnoty rozsahu.

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

Výkon:

15 14 13 12 11 10 9 8 7 6

Počiatočná hodnota je 15, stop hodnota je 5 a kroková hodnota je záporné číslo, tj -1. Pri vyššie uvedených vstupoch funkcia range () bude znižovať hodnotu od 15 do dosiahnutia hodnoty stop, ale tu je rozdiel posledná hodnota bude stop + 1.

Používanie plávajúcich čísel v rozsahu Pythonu ()

Poďme teraz pracovať na rozsahu () pomocou čísel s pohyblivou rádovou čiarkou.

Príklad:

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

Vo vyššie uvedenom príklade sme použili stop hodnotu ako 10,5.

Výstup je:

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 dáva chybu, pretože funkcia range () nepodporuje čísla s pohyblivou rádovou čiarkou pre štart, stop a krok.

Použitie cyklu for-loop s rozsahom Python ()

V tomto príklade použijeme pole čísel a pozrime sa, ako použiť iteráciu poľa vo vnútri cyklu for-using pomocou range ()

Príklad:

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

Výkon:

MysqlMongodb PostgreSQL Firebase

Vo vyššie uvedenom príklade sme ako stop hodnotu použili len (arr_list). Smyčka for bude iterovať až do konečnej hodnoty, tj. Do dĺžky poľa a bude 4, pretože v zozname arr_list máme štyri položky. Počiatočná hodnota bude 0 a krok bude 1. Hodnoty teda budú začínať od 0 a zastavia sa na 3, tj. Dĺžke poľa -1, čo znamená 4 -1 = 3.

Použitie Pythonu range () ako zoznamu

V tomto príklade uvidíme, ako využiť výstup z rozsahu ako zoznam.

Príklad:

print(list(range(10)))

Výkon:

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

Môžete vidieť, že výstup je vo formáte zoznamu. Nebolo potrebné robiť cyklus (range) a pomocou metódy list () sme mohli priamo konvertovať výstup z rozsahu do formátu zoznamu.

Používanie znakov v rozsahu pythonu ()

Doteraz sme používali celé čísla v rozsahu pythonu (). Tiež sme videli, že čísla s pohyblivou rádovou čiarkou nie sú v rozsahu pythonu podporované. Skúsme si pozrieť výstup, čo sa stane, keď použijeme znaky.

Príklad:

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

Výkon:

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

Vyvolá chybu s tvrdením, že reťazec nemožno interpretovať ako celé číslo.

Ak chcete získať zoznam abeced, môžete prispôsobiť kód a získať požadovaný výstup, ako je uvedené nižšie:

Príklad:

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ýkon:

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

Ako získať prístup k prvkom rozsahu

Na získanie hodnôt z rozsahu môžete použiť cyklus for-loop alebo na prístup k prvkom z rozsahu () použiť index.

Pomocou slučky for-loop

Príklad:

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

Výkon:

012345

Pomocou indexu

Index sa používa s rozsahom na získanie hodnoty dostupnej na tejto pozícii. Ak je hodnota rozsahu 5, pre získanie počiatočnej hodnoty môžete použiť rozsah (5) [0] a ďalší rozsah hodnôt (5) [1] atď.

Príklad:

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ýkon:

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)

Pomocou zoznamu ()

Táto metóda vytlačí všetky prvky z rozsahu (). Pomocou list () vráti prvky z range () vo formáte zoznamu.

Príklad:

print(list(range(10)))

Výkon:

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

Poskytuje výstup zoznamu pre daný rozsah.

Príklad: Získajte párne čísla pomocou rozsahu ()

Použitím range () dostaneme zoznam párnych čísel v rozsahu uvedenom ako vstup. Parametre pre rozsah () sú, štart je 2, stop je 20 a krok je 2, takže hodnoty sa zvýšia o 2 a budú dávať párne čísla až do zastavenia-2.

Príklad:

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

Výkon:

2 4 6 8 10 12 14 16 18

Zlúčenie výstupov s dvoma rozsahmi ()

V tomto príklade zreťazíme 2 funkcie range () pomocou funkcie itertools module chain ().

Príklad:

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

Výkon:

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

Používanie rozsahu () s NumPy

Modul NumPy má funkciu arange (), ktorá funguje a poskytuje podobný výstup ako range (). Aranžmán () preberá rovnaké parametre ako range ().

Syntax:

arange(start, stop, step)

Pri práci s NumPy postupujte podľa krokov uvedených nižšie.

Krok 1 : Importujte modul NumPy

import numpy

V prípade, že počas vykonávania dôjde k chybe, hovorí sa, že modul numpy sa nenašiel, musíte si nainštalovať modul, ako je uvedené v kroku 2.

Krok 2 : Nainštalujte NumPy

pip install numpy

Krok 3 : Pracovný príklad arange () pomocou NumPy

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

Výkon:

0 1 2 3 4 5 6 7 8 9

Čísla s pohyblivou desatinnou čiarkou pomocou NumPy arange ()

Nie je možné získať postupnosť s pohyblivou rádovou čiarkou pomocou range (), ale je možné pomocou NumPy arange ().

Príklad:

Rozsah, ktorý chceme, je od 0,5 do 1,5. Hodnota sa zvýši o 0,2.

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

Výkon:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Výsledok, ktorý dostaneme, je trochu čudný, niektoré z čísel float sa zobrazujú na 16 desatinných miestach. Stáva sa to kvôli zložitosti ukladania desatinných pohyblivých čísel do binárneho formátu. Ak je to potrebné, môžete hodnoty zaokrúhliť a obmedziť na požadované desatinné miesta.

Zhrnutie:

  • Python range () je vstavaná funkcia dostupná pre Python z Pythonu (3.x) a poskytuje postupnosť čísel na základe daného počiatočného a konečného indexu. Ak nie je uvedený začiatočný index, bude sa index považovať za 0 a bude zvyšovať hodnotu až po zastavovací index.
  • Rozsah Python () bol zavedený od verzie Pythonu 3, predtým bola funkciou xrange ().
  • Range () udáva postupnosť čísel a vracia zoznam čísel. Funkcia xrange () dáva objektu generátora, ktorý je potrebné zacykliť do cyklu for-loop, aby sa získali hodnoty.
  • Krok parametra v rozsahu () je možné použiť na zvýšenie alebo zníženie hodnôt. Predvolene je to kladná hodnota 1. Takže bude vždy dávať prírastkové hodnoty.
  • Python dáva chybu pre čísla s pohyblivou rádovou čiarkou, pretože funkcia range () podporuje iba celočíselné hodnoty.
  • K hodnotám z range () je možné pristupovať pomocou for-loop, pomocou index a list ()
  • Modul NumPy má funkciu arange (), ktorá funguje a poskytuje podobný výstup ako range (). Arange () má rovnaké parametre ako range ().
  • Je možné získať postupnosť NumPy arange () s pohyblivou rádovou čiarkou, ktorá nie je podporovaná pomocou range ().