Funkce Python range (): Float, List, For Loops Příklady

Obsah:

Anonim

Co je rozsah Pythonu?

Python range () je vestavěná funkce dostupná pro Python z Pythonu (3.x) a poskytuje posloupnost čísel na základě zadaného indexu start a stop. V případě, že počáteční index není uveden, považuje se index za 0 a zvýší hodnotu o 1 až do zastavovacího indexu.

Například range (5) vám vygeneruje hodnoty 0,1,2,3,4. Python range () je velmi užitečný příkaz a většinou se používá, když musíte iterovat pomocí smyčky for.

V tomto výukovém programu se naučíte:

  • Co je rozsah Pythonu?
  • Syntax
  • Python range () Funkce a historie
  • Použití rozsahu ()
  • Použití funkce Start a Stop v rozsahu ()
  • Pomocí start, stop a krok
  • Zvyšování hodnot v rozsahu pomocí pozitivního kroku.
  • Obrácený rozsah: Snižování hodnot pomocí záporného kroku.
  • Používání plovoucích čísel v rozsahu Pythonu ()
  • Použití smyčky for-loop s rozsahem Python ()
  • Použití seznamu Python range () jako seznamu
  • Používání znaků v rozsahu pythonu ()
  • Jak přistupovat k prvkům rozsahu
  • Příklad: Získejte sudá čísla pomocí range ()
  • Sloučení dvou rozsahů () výstupů
  • Použití range () s NumPy

Syntax

range(start, stop, step)

Parametry

  • start: (volitelně) Počáteční index je celé číslo, a pokud není uveden, výchozí hodnota je 0.
  • stop: Stop index určuje hodnotu, při které se funkce rozsahu musí zastavit. Je to povinný vstup do funkce rozsahu. Poslední hodnota bude vždy o 1 menší než hodnota zastavení.
  • krok: (volitelně). Hodnota kroku je číslo, o které se musí zvýšit další číslo rozsahu, ve výchozím nastavení je to 1.

Návratová hodnota:

Návratová hodnota je posloupnost čísel od daného začátku do konce indexu.

Python range () Funkce a historie

Python range () byl zaveden z pythonu verze 3, předtím byla funkce xrange ().

Rozsah i xrange () se používají k vytvoření posloupnosti čísel.

Rozdíl mezi rozsahem a xrange () je následující:

rozsah() xrange ()
Range () udává posloupnost čísel a vrací seznam čísel. Funkce xrange () poskytuje objekt generátoru, který je třeba zacyklit ve smyčce pro získání hodnot.
Range () vrací seznam. xrange () vrací objekt generátoru.
Metoda range () používá více paměti, protože vrácený seznam musí být uložen ve srovnání s xrange (). Protože xrange () vrací objekt generátoru, nedává hodnoty okamžitě a pro získání hodnot musí být použit uvnitř smyčky for.
Využití paměti je více, proto je provádění kódu pomalé při práci na velké sadě dat. Provádění kódu je rychlejší pomocí xrange ().

Použití rozsahu ()

Tento příklad ukazuje, jak tisknout hodnoty od 0-9 pomocí range ().

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

Vzhledem k tomu, že start není uveden, je start považován za 0 a poslední hodnota je uvedena do 9. Poslední hodnota je vždy o 1 menší než daná hodnota, tj. Stop-1.

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

Výstup:

0 1 2 3 4 5 6 7 8 9

Použití funkce Start a Stop v rozsahu ()

V kódu je počáteční hodnota 3 a stop hodnota 10. Zde je počáteční index 3, takže posloupnost čísel bude začínat od 3 do stop hodnoty. Poslední hodnota v sekvenci bude o 1 menší než stop hodnota 10-1 = 9.

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

Výstup:

3 4 5 6 7 8 9

Pomocí start, stop a krok

Počáteční hodnota je 3, takže posloupnost čísel bude začínat na 3. Zastavovací hodnota je 10, takže posloupnost čísel se zastaví na (10-1), tj. 9. Krok je 2, takže každá hodnota v posloupnosti bude být zvýšen o 2. Pokud není zadána hodnota kroku, hodnota kroku má výchozí hodnotu 1.

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

Výstup:

3 5 7 9

Zatím jsme viděli, jak funkce range () dává zvýšenou hodnotu pro danou hodnotu zastavení. Zkusme nyní příklad, jak získat sníženou hodnotu v daném rozsahu.

Zvyšování hodnot v rozsahu pomocí pozitivního kroku.

Krok parametru v rozsahu () lze použít ke zvýšení / snížení hodnot. Ve výchozím nastavení je to kladná hodnota 1. Takže bude vždy dávat přírůstkové hodnoty.

Hodnota kroku musí být kladná, pokud chcete, aby byly zvýšeny hodnoty jako výstup.

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

Výstup:

1 6 11 16 21 26

Obrácený rozsah: Snižování hodnot pomocí záporného kroku.

Krok parametru se zápornou hodnotou v rozsahu () lze použít k získání snížených hodnot. V níže uvedeném příkladu je hodnota kroku záporná, takže výstup bude snížen z dané hodnoty rozsahu.

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

Výstup:

15 14 13 12 11 10 9 8 7 6

Počáteční hodnota je 15, koncová hodnota je 5 a kroková hodnota je záporné číslo, tj. -1. S výše uvedenými vstupy funkce range () bude snižovat hodnotu od 15 dále, dokud nedosáhne hodnoty stop, ale zde je rozdíl poslední hodnota bude stop + 1.

Používání plovoucích čísel v rozsahu Pythonu ()

Pojďme nyní pracovat na rozsahu () pomocí čísel s plovoucí desetinnou čárkou.

Příklad:

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

Ve výše uvedeném příkladu jsme použili stop hodnotu 10,5.

Výstupem 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ává chybu, protože funkce range () nepodporuje čísla s plovoucí desetinnou čárkou pro start, stop a krok.

Použití smyčky for-loop s rozsahem Python ()

V tomto příkladu použijeme řadu čísel a podívejme se, jak použít iteraci pole uvnitř smyčky for-range pomocí range ()

Příklad:

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

Výstup:

MysqlMongodb PostgreSQL Firebase

Ve výše uvedeném příkladu jsme jako stop hodnotu použili len (arr_list). Smyčka for bude iterovat až do hodnoty stop, tj. Délky pole, a to bude 4, protože máme čtyři položky v seznamu arr_list. Počáteční hodnota bude 0 a krok bude 1. Takže hodnoty budou začínat od 0 a zastaví se na 3, tj. Délka pole -1, což znamená 4 -1 = 3.

Použití seznamu Python range () jako seznamu

V tomto příkladu uvidíme, jak využít výstup z rozsahu jako seznam.

Příklad:

print(list(range(10)))

Výstup:

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

Můžete vidět, že výstup je ve formátu seznamu. Nebylo nutné opakovat rozsah () a pomocí metody list () jsme mohli přímo převést výstup z rozsahu do formátu seznamu.

Používání znaků v rozsahu pythonu ()

Dosud jsme používali celá čísla v rozsahu pythonu (). Také jsme viděli, že čísla s plovoucí desetinnou čárkou nejsou v rozsahu pythonu podporována. Zkusme vidět výstup, co se stane, když použijeme znaky.

Příklad:

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

Výstup:

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, která říká, že řetězec nelze interpretovat jako celé číslo.

Chcete-li získat seznam abeced, můžete upravit kód a získat požadovaný výstup, jak je uvedeno níže:

Pří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ýstup:

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

Jak přistupovat k prvkům rozsahu

Můžete použít smyčku pro získání hodnot z rozsahu nebo použít index pro přístup k prvkům z rozsahu ().

Používání for-loop

Příklad:

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

Výstup:

012345

Pomocí indexu

Index se používá s rozsahem k získání hodnoty dostupné na dané pozici. Pokud je hodnota rozsahu 5, pro získání počáteční hodnoty můžete použít rozsah (5) [0] a další rozsah hodnot (5) [1] atd.

Pří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ýstup:

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)

Použití seznamu ()

Tato metoda vytiskne všechny prvky z rozsahu (). Pomocí list () vrátí prvky z range () ve formátu seznamu.

Příklad:

print(list(range(10)))

Výstup:

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

Poskytuje výstup seznamu pro daný rozsah.

Příklad: Získejte sudá čísla pomocí range ()

Použitím range () získáte seznam sudých čísel v rozsahu uvedeném jako vstup. Parametry pro range () jsou, start je 2, stop je 20 a krok je 2, takže hodnoty se zvýší o 2 a budou udávat sudá čísla až do stop-2.

Příklad:

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

Výstup:

2 4 6 8 10 12 14 16 18

Sloučení dvou rozsahů () výstupů

V tomto příkladu zřetězí 2 funkce range () pomocí funkce itertools module chain ().

Pří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ýstup:

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žití range () s NumPy

Modul NumPy má funkci arange (), která funguje a poskytuje podobný výstup jako range (). Uspořádání () přebírá stejné parametry jako range ().

Syntax:

arange(start, stop, step)

Při práci s NumPy postupujte podle níže uvedených kroků.

Krok 1 : Importujte modul NumPy

import numpy

Během provádění se zobrazí chyba, že modul numpy nebyl nalezen, musíte nainstalovat modul, jak je znázorněno v kroku 2.

Krok 2 : Nainstalujte NumPy

pip install numpy

Krok 3 : Pracovní příklad arange () pomocí NumPy

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

Výstup:

0 1 2 3 4 5 6 7 8 9

Čísla s plovoucí desetinnou čárkou pomocí NumPy arange ()

Posloupnost s plovoucí desetinnou čárkou není možné získat pomocí range (), ale je možné pomocí NumPy arange ().

Příklad:

Rozsah, který chceme, je od 0,5 do 1,5. Hodnota se zvýší o 0,2.

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

Výstup:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Výstup, který dostaneme, je trochu divný, některá čísla float jsou zobrazena na 16 desetinných místech. K tomu dochází z důvodu složitosti ukládání desetinných plovoucích čísel do binárního formátu. Pokud je to nutné, můžete hodnoty zaokrouhlit a omezit na požadovaná desetinná místa.

Souhrn:

  • Python range () je vestavěná funkce dostupná pro Python z Pythonu (3.x) a poskytuje posloupnost čísel na základě zadaného indexu start a stop. V případě, že počáteční index není uveden, je index považován za 0 a bude zvyšovat hodnotu až do zastavovacího indexu.
  • Python range () byl zaveden z pythonu verze 3, předtím byla funkce xrange ().
  • Range () udává posloupnost čísel a vrací seznam čísel. Funkce xrange () poskytuje objekt generátoru, který je třeba zacyklit ve smyčce pro získání hodnot.
  • Krok parametru v rozsahu () lze použít ke zvýšení / snížení hodnot. Ve výchozím nastavení je to kladná hodnota 1. Takže bude vždy dávat přírůstkové hodnoty.
  • Python dává chybu pro čísla s plovoucí desetinnou čárkou, protože funkce range () podporuje pouze celočíselné hodnoty.
  • K hodnotám z range () lze přistupovat pomocí for-loop, pomocí index a list ()
  • Modul NumPy má funkci arange (), která funguje a poskytuje podobný výstup jako range (). Arange () přijímá stejné parametry jako range ().
  • Je možné získat posloupnost s plovoucí desetinnou čárkou NumPy arange (), která není podporována pomocí range ().