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, infor 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, infor 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 ().