Funzione Python range (): Float, List, For loop

Cos'è la gamma Python?

Python range () è una funzione incorporata disponibile con Python da Python (3.x) e fornisce una sequenza di numeri basata sull'indice di inizio e fine fornito. Nel caso in cui l'indice di inizio non venga fornito, l'indice è considerato come 0 e incrementerà il valore di 1 fino all'indice di arresto.

Ad esempio range (5) produrrà valori 0,1,2,3,4. Python range () è un comando molto utile e usato principalmente quando devi iterare usando il ciclo for.

In questo tutorial imparerai:

  • Cos'è la gamma Python?
  • Sintassi
  • Funzione e cronologia di Python range ()
  • Utilizzo di range ()
  • Utilizzo di avvio e arresto nell'intervallo ()
  • Utilizzando start, stop e step
  • Incremento dei valori nell'intervallo utilizzando un passaggio positivo.
  • Intervallo inverso: decremento dei valori utilizzando un passo negativo
  • Utilizzo di numeri mobili in Python range ()
  • Usare for-loop con Python range ()
  • Utilizzo di Python range () come elenco
  • Usare i caratteri in Python range ()
  • Come accedere agli elementi della gamma
  • Esempio: ottieni numeri pari utilizzando range ()
  • Unione di uscite a due intervalli ()
  • Usare range () con NumPy

Sintassi

range(start, stop, step)

Parametri

  • inizio: (opzionale) l'indice di inizio è un numero intero e, se non specificato, il valore predefinito è 0.
  • fermare: È un input obbligatorio per la funzione di intervallo. L'ultimo valore sarà sempre 1 in meno rispetto al valore di stop.
  • passo: (opzionale). Il valore del passo è il numero di cui deve essere incrementato il numero successivo dell'intervallo, per impostazione predefinita è 1.

Valore di ritorno:

Il valore restituito è una sequenza di numeri dall'indice di inizio a quello di arresto specificato.

Funzione e cronologia di Python range ()

Python range () è stato introdotto dalla versione 3 di python, prima che xrange () fosse la funzione.

Sia range che xrange () vengono utilizzati per produrre una sequenza di numeri.

Di seguito sono riportate le differenze tra range e xrange ():

gamma() xrange ()
Il range () fornisce la sequenza di numeri e restituisce un elenco di numeri. La funzione xrange () fornisce un oggetto generatore che deve essere ripetuto in un ciclo for per ottenere i valori.
Il range () restituisce un elenco. xrange () restituisce un oggetto generatore.
Il metodo range () utilizza più memoria poiché l'elenco restituito deve essere memorizzato rispetto a xrange (). Poiché xrange () restituisce un oggetto generatore, non fornisce valori istantaneamente e deve essere utilizzato all'interno del ciclo for per ottenere i valori.
L'utilizzo della memoria è maggiore, quindi l'esecuzione del codice è lenta quando si lavora su un enorme set di dati. L'esecuzione del codice è più veloce usando xrange ().

Utilizzo di range ()

Questo esempio mostra come stampare i valori da 0 a 9 utilizzando range ().

Il valore utilizzato nell'intervallo è 10, quindi l'uscita è 0 1 2 3 4 5 6 7 8 9

Poiché lo start non è dato, lo start è considerato come 0 e l'ultimo valore è dato fino a 9. L'ultimo valore è sempre 1 in meno del valore dato cioè stop-1.

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

Produzione:

0 1 2 3 4 5 6 7 8 9

Utilizzo di avvio e arresto nell'intervallo ()

Nel codice, il valore iniziale è 3 e il valore finale è 10. Qui l'indice iniziale è 3, quindi la sequenza di numeri inizierà da 3 fino al valore finale. L'ultimo valore nella sequenza sarà 1 in meno rispetto al valore di stop 10-1 = 9.

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

Produzione:

3 4 5 6 7 8 9

Utilizzando start, stop e step

Il valore iniziale è 3, quindi la sequenza di numeri inizierà da 3. Il valore di fine è 10, quindi la sequenza di numeri si fermerà a (10-1) cioè 9. Il passo è 2, quindi ogni valore nella sequenza sarà essere incrementato di 2. Se il valore del passo non viene fornito, il valore per il passo predefinito è 1.

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

Produzione:

3 5 7 9

Finora, abbiamo visto come la funzione range () fornisce il valore incrementato per il valore di stop dato. Proviamo ora un esempio per ottenere il valore decrementato nell'intervallo fornito.

Incremento dei valori nell'intervallo utilizzando un passaggio positivo.

Il passo del parametro in range () può essere utilizzato per aumentare / diminuire i valori. Per impostazione predefinita, è un valore positivo 1. Quindi fornirà sempre valori incrementati.

Il valore del gradino deve essere positivo nel caso in cui si vogliano valori incrementati come output.

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

Produzione:

1 6 11 16 21 26

Intervallo inverso: decremento dei valori utilizzando un passo negativo

Il passo del parametro con valore negativo in range () può essere utilizzato per ottenere valori decrementati. Nell'esempio seguente il valore del gradino è negativo, quindi l'uscita sarà decrementata dal valore dell'intervallo fornito.

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

Produzione:

15 14 13 12 11 10 9 8 7 6

Il valore iniziale è 15, il valore finale è 5 e il valore del passo è un numero negativo, cioè -1. Con gli ingressi sopra la funzione range () decrementerà il valore da 15 in poi fino a raggiungere il valore di stop, ma qui la differenza è che l'ultimo valore sarà stop + 1.

Utilizzo di numeri mobili in Python range ()

Ora lavoriamo su range () usando numeri in virgola mobile.

Esempio:

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

Nell'esempio sopra abbiamo usato il valore di stop come 10.5.

L'output è:

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 restituisce un errore poiché la funzione range () non supporta i numeri in virgola mobile per start, stop e step.

Usare for-loop con Python range ()

In questo esempio useremo un array di numeri e, vediamo come usare l'iterazione dell'array all'interno del ciclo for usando range ()

Esempio:

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

Produzione:

MysqlMongodb PostgreSQL Firebase

Nell'esempio sopra abbiamo usato len (arr_list) come valore di stop. Il ciclo for itererà fino al valore di stop, ovvero la lunghezza dell'array e che sarà 4, poiché abbiamo quattro elementi nell'arr_list. Il valore iniziale sarà 0 e il passo sarà 1. Quindi i valori inizieranno da 0 e si fermeranno a 3, cioè la lunghezza dell'array -1 significa 4-1 = 3.

Utilizzo di Python range () come elenco

In questo esempio vedremo come utilizzare l'output di range come un elenco.

Esempio:

print(list(range(10)))

Produzione:

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

Puoi vedere che l'output è un formato elenco. Non era necessario eseguire il loop del range () e utilizzando il metodo list () potevamo convertire direttamente l'output dal formato intervallo al formato elenco.

Usare i caratteri in Python range ()

Finora, abbiamo usato numeri interi in python range (). Abbiamo anche visto che i numeri in virgola mobile non sono supportati nell'intervallo python. Proviamo a vedere l'output di cosa succede quando usiamo i caratteri.

Esempio:

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

Produzione:

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

Genera un errore che dice che una stringa non può essere interpretata come un numero intero.

Per ottenere l'elenco degli alfabeti è possibile personalizzare il codice e ottenere l'output desiderato come mostrato di seguito:

Esempio:

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

Produzione:

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

Come accedere agli elementi della gamma

È possibile utilizzare un ciclo for per ottenere i valori dall'intervallo o utilizzare l'indice per accedere agli elementi da range ().

Utilizzando for-loop

Esempio:

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

Produzione:

012345

Utilizzando index

L'indice viene utilizzato con intervallo per ottenere il valore disponibile in quella posizione. Se il valore dell'intervallo è 5, per ottenere il valore iniziale, è possibile utilizzare l'intervallo (5) [0] e l'intervallo di valori successivo (5) [1] e così via.

Esempio:

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)

Produzione:

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)

Utilizzando list ()

Questo metodo stamperà tutti gli elementi da range (). Usando list () restituirà gli elementi da range () in formato elenco.

Esempio:

print(list(range(10)))

Produzione:

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

Fornisce l'output dell'elenco per l'intervallo fornito.

Esempio: ottieni numeri pari utilizzando range ()

L'uso di range () otterrà l'elenco dei numeri pari nell'intervallo fornito come input. I parametri per range () sono, start è 2, stop è 20 e step è 2, quindi i valori verranno incrementati di 2 e daranno numeri pari fino a stop-2.

Esempio:

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

Produzione:

2 4 6 8 10 12 14 16 18

Unione di uscite a due intervalli ()

In questo esempio verranno concatenate 2 funzioni range () con l'aiuto della funzione itertools module chain ().

Esempio:

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

Produzione:

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

Usare range () con NumPy

Il modulo NumPy ha la funzione arange () che funziona e fornisce un output simile come range (). Arrange () accetta gli stessi parametri come range ().

Sintassi:

arange(start, stop, step)

Per lavorare con NumPy segui i passaggi indicati di seguito.

Passaggio 1 : importa il modulo NumPy

import numpy

Incase durante l'esecuzione, dà un errore dicendo che il modulo numpy non è stato trovato, è necessario installare il modulo come mostrato nel passaggio 2.

Passaggio 2 : installa NumPy

pip install numpy

Passaggio 3 : esempio di lavoro di arange () utilizzando NumPy

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

Produzione:

0 1 2 3 4 5 6 7 8 9

Numeri in virgola mobile utilizzando NumPy arange ()

Non è possibile ottenere la sequenza in virgola mobile usando range (), ma è possibile usando NumPy arange ().

Esempio:

L'intervallo che vogliamo è compreso tra 0,5 e 1,5. Il valore verrà incrementato di 0,2.

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

Produzione:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

L'output che otteniamo è un po 'strano, alcuni dei numeri in virgola mobile sono visualizzati con 16 cifre decimali. Ciò accade a causa della complessità della memorizzazione di numeri decimali in virgola mobile in formato binario. È inoltre possibile arrotondare i valori, se necessario, e limitarli alle cifre decimali necessarie.

Sommario:

  • Python range () è una funzione incorporata disponibile con Python da Python (3.x) e fornisce una sequenza di numeri basata sull'indice di inizio e fine fornito. Nel caso in cui l'indice di inizio non venga fornito, l'indice è considerato come 0 e incrementerà il valore fino all'indice di arresto.
  • Python range () è stato introdotto dalla versione 3 di python, prima che xrange () fosse la funzione.
  • Il range () fornisce la sequenza di numeri e restituisce un elenco di numeri. La funzione xrange () fornisce un oggetto generatore che deve essere ripetuto in un ciclo for per ottenere i valori.
  • Il passo del parametro in range () può essere utilizzato per aumentare / diminuire i valori. Per impostazione predefinita, è un valore positivo 1. Quindi fornirà sempre valori incrementati.
  • Python restituisce un errore per i numeri in virgola mobile poiché la funzione range () supporta solo valori interi.
  • È possibile accedere ai valori da range () usando for-loop, usando index e list ()
  • Il modulo NumPy ha la funzione arange () che funziona e fornisce un output simile come range (). Arange () accetta gli stessi parametri di range ().
  • È possibile ottenere la sequenza a virgola mobile NumPy arange () che non è supportata utilizzando range ().

Articoli interessanti...