Funkcja range () w Pythonie: liczba zmiennoprzecinkowa, lista, przykłady pętli For

Spisie treści:

Anonim

Co to jest zakres Pythona?

Python range () to funkcja wbudowana dostępna w Pythonie z Pythona (3.x) i podaje sekwencję liczb na podstawie podanego indeksu startu i stopu. W przypadku, gdy nie podano indeksu początkowego, indeks jest traktowany jako 0 i będzie zwiększał wartość o 1, aż do indeksu zatrzymania.

Na przykład range (5) wyświetli wartości 0, 1, 2, 3, 4. Python range () jest bardzo użytecznym poleceniem i najczęściej używanym, gdy musisz iterować za pomocą pętli for.

W tym samouczku dowiesz się:

  • Co to jest zakres Pythona?
  • Składnia
  • Python range () Funkcja i historia
  • Korzystanie z zakresu ()
  • Korzystanie z funkcji start and stop in range ()
  • Korzystanie z funkcji start, stop i step
  • Zwiększanie wartości w zakresie za pomocą dodatniego kroku.
  • Odwrotny zakres: Zmniejszanie wartości za pomocą kroku ujemnego.
  • Używanie liczb zmiennoprzecinkowych w zakresie Pythona ()
  • Używanie pętli for z Python range ()
  • Używanie Pythona range () jako listy
  • Używanie znaków w zakresie Pythona ()
  • Jak uzyskać dostęp do elementów zakresu
  • Przykład: uzyskaj liczby parzyste za pomocą range ()
  • Scalanie wyjść dwuzakresowych ()
  • Używanie range () z NumPy

Składnia

range(start, stop, step)

Parametry

  • start: (opcjonalne) Indeks początkowy jest liczbą całkowitą, a jeśli nie zostanie podany, wartością domyślną jest 0.
  • stop: Indeks stop decyduje o wartości, przy której funkcja zakresu ma się zatrzymać. Jest to obowiązkowe dane wejściowe do funkcji zakresu. Ostatnia wartość będzie zawsze o 1 mniejsza od wartości zatrzymania.
  • step: (opcjonalne) Wartość kroku to liczba, o którą należy zwiększyć kolejną liczbę w zakresie, domyślnie jest to 1.

Wartość zwracana:

Wartość zwracana to sekwencja liczb od podanego indeksu początku do końca.

Python range () Funkcja i historia

Python range () został wprowadzony z pythona w wersji 3, zanim funkcja xrange () była.

Zarówno range, jak i xrange () są używane do tworzenia sekwencji liczb.

Oto różnica między range i xrange ():

zasięg() xrange ()
Zakres () podaje sekwencję liczb i zwraca listę liczb. Funkcja xrange () daje obiekt generatora, który należy zapętlić w pętli for, aby uzyskać wartości.
Range () zwraca listę. xrange () zwraca obiekt generatora.
Metoda range () zużywa więcej pamięci, ponieważ zwrócona lista musi być przechowywana w porównaniu z xrange (). Ponieważ xrange () zwraca obiekt generatora, nie podaje wartości natychmiast i musi być użyte wewnątrz pętli for, aby uzyskać wartości.
Zużycie pamięci jest większe, dlatego wykonywanie kodu jest powolne podczas pracy z ogromnym zestawem danych. Wykonanie kodu jest szybsze dzięki xrange ().

Korzystanie z zakresu ()

Ten przykład pokazuje, jak wydrukować wartości od 0 do 9 za pomocą range ().

Wartość użyta w zakresie to 10, więc wyjście to 0 1 2 3 4 5 6 7 8 9

Ponieważ początek nie jest podany, początek traktowany jest jako 0, a ostatnia wartość jest podawana do 9. Ostatnia wartość jest zawsze o 1 mniejsza od podanej wartości, tj. Stop-1.

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

Wynik:

0 1 2 3 4 5 6 7 8 9

Korzystanie z funkcji start and stop in range ()

W kodzie wartość początkowa to 3, a wartość zatrzymania to 10. Tutaj indeks początkowy to 3, więc sekwencja liczb będzie się zaczynała od 3 do wartości końcowej. Ostatnia wartość w sekwencji będzie o 1 mniejsza niż wartość zatrzymania 10-1 = 9.

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

Wynik:

3 4 5 6 7 8 9

Korzystanie z funkcji start, stop i step

Wartość początkowa to 3, więc sekwencja liczb rozpocznie się od 3. Wartość zatrzymania to 10, więc sekwencja liczb zakończy się na (10-1), tj. 9. Krok to 2, więc każda wartość w sekwencji będzie być zwiększane o 2. Jeżeli nie podano wartości kroku, wartość kroku przyjmuje wartość domyślną 1.

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

Wynik:

3 5 7 9

Do tej pory widzieliśmy, jak funkcja range () podaje zwiększoną wartość dla podanej wartości stop. Wypróbujmy teraz przykład, aby uzyskać zmniejszoną wartość w podanym zakresie.

Zwiększanie wartości w zakresie za pomocą dodatniego kroku.

Parametr step in range () może służyć do zwiększania / zmniejszania wartości. Domyślnie jest to wartość dodatnia 1. Dlatego zawsze będzie podawać wartości zwiększone.

Wartość kroku musi być dodatnia, na wypadek, gdybyś chciał, aby wartości przyrostowe były wartością wyjściową.

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

Wynik:

1 6 11 16 21 26

Odwrotny zakres: Zmniejszanie wartości za pomocą kroku ujemnego.

Parametr step z ujemną wartością w zakresie () może być użyty do uzyskania zmniejszonych wartości. W poniższym przykładzie wartość kroku jest ujemna, więc wyjście będzie zmniejszane od podanej wartości zakresu.

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

Wynik:

15 14 13 12 11 10 9 8 7 6

Wartość początkowa to 15, wartość zatrzymania to 5, a wartość kroku to liczba ujemna, tj. -1. Przy powyższych wejściach funkcja range () będzie zmniejszać wartość od 15 wzwyż, aż osiągnie wartość stop, ale tutaj różnica jest ostatnią wartością stop + 1.

Używanie liczb zmiennoprzecinkowych w zakresie Pythona ()

Popracujmy teraz nad range () używając liczb zmiennoprzecinkowych.

Przykład:

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

W powyższym przykładzie użyliśmy wartości stop jako 10,5.

Wynik to:

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 zgłasza błąd, ponieważ funkcja range () nie obsługuje liczb zmiennoprzecinkowych dla start, stop i step.

Używanie pętli for z Python range ()

W tym przykładzie użyjemy tablicy liczb i zobaczmy, jak użyć iteracji tablicy wewnątrz pętli for za pomocą range ()

Przykład:

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

Wynik:

MysqlMongodb PostgreSQL Firebase

W powyższym przykładzie użyliśmy len (arr_list) jako wartość zatrzymania. Pętla for będzie iterować aż do wartości stopu, tj. Długości tablicy i będzie to 4, ponieważ mamy cztery elementy w arr_list. Wartość początkowa będzie wynosić 0, a krok będzie równy 1, więc wartości będą rozpoczynać się od 0 i kończyć na 3, tj. Długość tablicy -1, co oznacza 4-1 = 3.

Używanie Pythona range () jako listy

W tym przykładzie zobaczymy, jak wykorzystać dane wyjściowe z zakresu jako listę.

Przykład:

print(list(range(10)))

Wynik:

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

Możesz zobaczyć, że wynik jest formatem listy. Nie było potrzeby zapętlania zakresu (), a przy użyciu metody list () mogliśmy bezpośrednio przekonwertować dane wyjściowe z zakresu na format listy.

Używanie znaków w zakresie Pythona ()

Do tej pory używaliśmy liczb całkowitych w pythonie range (). Widzieliśmy również, że liczby zmiennoprzecinkowe nie są obsługiwane w zakresie Pythona. Spróbujmy zobaczyć, co się dzieje, kiedy używamy znaków.

Przykład:

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

Wynik:

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

Zgłasza błąd informujący, że ciąg nie może być zinterpretowany jako liczba całkowita.

Aby uzyskać listę alfabetów, możesz dostosować kod i uzyskać żądane dane wyjściowe, jak pokazano poniżej:

Przykład:

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

Wynik:

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

Jak uzyskać dostęp do elementów zakresu

Możesz skorzystać z pętli for, aby pobrać wartości z zakresu lub użyć indeksu, aby uzyskać dostęp do elementów z range ().

Korzystanie z pętli for

Przykład:

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

Wynik:

012345

Korzystanie z index

Indeks jest używany z zakresem, aby uzyskać wartość dostępną na tej pozycji. Jeśli wartość zakresu wynosi 5, aby uzyskać wartość początkową, możesz użyć range (5) [0] i następnego zakresu wartości (5) [1] i tak dalej.

Przykład:

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)

Wynik:

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)

Korzystanie z listy ()

Ta metoda wypisze wszystkie elementy z zakresu (). Używając list (), zwróci elementy z range () w formacie listy.

Przykład:

print(list(range(10)))

Wynik:

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

Daje wyjście listy dla podanego zakresu.

Przykład: uzyskaj liczby parzyste za pomocą range ()

Użycie range () spowoduje wyświetlenie listy parzystych liczb z zakresu podanego jako dane wejściowe. Parametry dla range () to, start to 2, stop to 20, a step to 2, więc wartości będą zwiększane o 2 i będą dawały liczby parzyste aż do stop-2.

Przykład:

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

Wynik:

2 4 6 8 10 12 14 16 18

Scalanie wyjść dwuzakresowych ()

W tym przykładzie połączymy 2 funkcje range () za pomocą funkcji chain () modułu itertools.

Przykład:

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

Wynik:

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

Używanie range () z NumPy

Moduł NumPy ma funkcję arange (), która działa i daje podobne wyniki jak range (). Arrange () przyjmuje te same parametry, co range ().

Składnia:

arange(start, stop, step)

Aby pracować z NumPy, wykonaj kroki podane poniżej.

Krok 1 : Importuj moduł NumPy

import numpy

W przypadku gdy podczas wykonywania pojawia się błąd informujący, że moduł numpy nie został znaleziony, musisz zainstalować moduł, jak pokazano w kroku 2.

Krok 2 : Zainstaluj NumPy

pip install numpy

Krok 3 : Przykład roboczy arange () przy użyciu NumPy

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

Wynik:

0 1 2 3 4 5 6 7 8 9

Liczby zmiennoprzecinkowe przy użyciu funkcji NumPy arange ()

Nie jest możliwe uzyskanie sekwencji zmiennoprzecinkowej za pomocą range (), ale jest to możliwe za pomocą NumPy arange ().

Przykład:

Wymagany zakres to od 0,5 do 1,5. Wartość będzie zwiększana o 0,2.

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

Wynik:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Wynik, który otrzymujemy jest trochę dziwny, niektóre liczby zmiennoprzecinkowe są wyświetlane z 16 miejscami po przecinku. Dzieje się tak ze względu na złożoność przechowywania dziesiętnych liczb zmiennoprzecinkowych w formacie binarnym. W razie potrzeby możesz również zaokrąglić wartości i ograniczyć je do potrzebnych miejsc dziesiętnych.

Podsumowanie:

  • Python range () to funkcja wbudowana dostępna w Pythonie z Pythona (3.x) i podaje sekwencję liczb na podstawie podanego indeksu startu i stopu. W przypadku, gdy nie podano indeksu początkowego, indeks jest traktowany jako 0 i będzie zwiększał wartość aż do indeksu zatrzymania.
  • Python range () został wprowadzony z pythona w wersji 3, zanim funkcja xrange () była.
  • Zakres () podaje sekwencję liczb i zwraca listę liczb. Funkcja xrange () daje obiekt generatora, który należy zapętlić w pętli for, aby uzyskać wartości.
  • Parametr step in range () może służyć do zwiększania / zmniejszania wartości. Domyślnie jest to wartość dodatnia 1. Dlatego zawsze będzie podawać wartości zwiększone.
  • Python podaje błąd dla liczb zmiennoprzecinkowych, ponieważ funkcja range () obsługuje tylko wartości całkowite.
  • Dostęp do wartości z zakresu () można uzyskać za pomocą pętli for, za pomocą indeksu i listy ()
  • Moduł NumPy ma funkcję arange (), która działa i daje podobne wyniki jak range (). Arange () przyjmuje te same parametry co range ().
  • Możliwe jest uzyskanie sekwencji zmiennoprzecinkowej NumPy arange (), która nie jest obsługiwana przy użyciu funkcji range ().