Python range() Funzione: Float, Elenco, Ciclo For Esempi
⚡ Riepilogo intelligente
Python range() è una funzione integrata che genera una sequenza immutabile di numeri interi da un valore iniziale fino a un valore finale, escluso quest'ultimo, utilizzando un passo opzionale per controllare l'incremento.
Cosa è Python Gamma?
Python range() è una funzione integrata 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 sia fornito, l'indice è considerato come 0, e incrementerà il valore di 1 fino all'indice di fine.
Ad esempio, range(5) restituirà i valori 0, 1, 2, 3, 4. Il Python range() è un comando molto utile e viene utilizzato principalmente quando è necessario iterare utilizzando un per loop.
Sintassi
La sintassi della funzione range() è mostrata di seguito:
range(start, stop, step)
Scheda Sintetica
- inizio: (facoltativo) L'indice iniziale è un numero intero e, se non fornito, il valore predefinito è 0.
- smettere: L'indice di arresto determina il valore al quale la funzione di intervallo deve fermarsi. È un parametro obbligatorio per la funzione di intervallo. L'ultimo valore sarà sempre inferiore di 1 rispetto al valore di arresto.
- passo: (facoltativo) Il valore del passo è il numero di cui deve essere incrementato il numero successivo nell'intervallo; per impostazione predefinita, è 1.
Valore di ritorno
Il valore restituito è una sequenza di numeri dall'inizio all'indice di arresto specificato.
Python range() Funzione e cronologia
Python range() è stato introdotto da Python versione 3; prima di allora, la funzione era xrange().
Sia range() che xrange() vengono utilizzati per generare una sequenza di numeri.
Di seguito sono riportate le differenze tra range() e xrange():
| gamma() | intervallo() |
|---|---|
| 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 una lista. | xrange() restituisce un oggetto generatore. |
| Il metodo range() utilizza più memoria poiché l'elenco restituito deve essere archiviato rispetto a xrange(). | Poiché xrange() restituisce un oggetto generatore, non fornisce i valori istantaneamente e deve essere utilizzato all'interno di un ciclo for per ottenerli. |
| L'utilizzo della memoria è maggiore, di conseguenza l'esecuzione del codice risulta lenta quando si lavora su un set di dati di grandi dimensioni. | L'esecuzione del codice è più veloce utilizzando xrange(). |
Utilizzando l'intervallo()
Questo esempio mostra come stampare i valori da 0 a 9 utilizzando range().
Il valore utilizzato nell'intervallo è 10, quindi l'output è 0 1 2 3 4 5 6 7 8 9.
Poiché il valore iniziale non è specificato, si considera 0 come valore iniziale e si fornisce l'ultimo valore fino a 9. L'ultimo valore è sempre inferiore di 1 rispetto al valore specificato, ovvero stop-1.
for i in range(10): print(i, end =" ")
Produzione:
0 1 2 3 4 5 6 7 8 9
Utilizzando start e stop nell'intervallo()
Nel codice, il valore iniziale è 3 e il valore finale è 10. Poiché l'indice iniziale è 3, la sequenza di numeri partirà da 3 fino al valore finale. L'ultimo valore della sequenza sarà inferiore di 1 rispetto al valore finale, ovvero 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 finale è 10, quindi la sequenza di numeri si fermerà a (10-1), ovvero 9. Il passo è 2, quindi ogni valore nella sequenza verrà incrementato di 2. Se il valore del passo non viene specificato, il valore predefinito è 1.
for i in range(3, 10, 2): print(i, end =" ")
Produzione:
3 5 7 9
Finora abbiamo visto come la funzione range() restituisce il valore incrementato rispetto al valore di arresto specificato. Proviamo ora con un esempio per ottenere il valore decrementato nell'intervallo specificato.
Incrementare i valori nell'intervallo utilizzando un passo positivo
Il parametro step nella funzione range() può essere utilizzato per incrementare o decrementare i valori. Per impostazione predefinita, è un valore positivo, 1. Quindi restituirà sempre valori incrementati.
Il valore del passo deve essere positivo se si desidera ottenere valori incrementali in uscita.
for i in range(1, 30, 5): print(i, end =" ")
Produzione:
1 6 11 16 21 26
Reverse Intervallo: Decremento dei valori con passo negativo
Il parametro step con un valore negativo in range() può essere utilizzato per ottenere valori decrementati. Nell'esempio seguente, il valore di step è negativo, quindi l'output sarà decrementato rispetto al valore di range specificato.
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 passo è un numero negativo, ovvero -1. Con gli input sopra indicati, la funzione range() decrementerà il valore da 15 in poi fino a raggiungere il valore finale, ma in questo caso la differenza è che l'ultimo valore sarà stop + 1.
Utilizzo di numeri mobili in Python gamma()
Lavoriamo ora su range() utilizzando numeri in virgola mobile.
Esempio:
for i in range(10.5): print(i, end =" ")
Nell'esempio precedente, abbiamo utilizzato un valore di arresto pari a 10.5.
L'output è:
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python Si verifica un errore poiché la funzione range() non supporta i numeri in virgola mobile per start, stop e step.
Utilizzo del ciclo for con Python gamma()
In questo esempio, useremo un array di numeri e vedremo come iterare l'array all'interno di un 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 precedente, abbiamo usato len(arr_list) come valore di arresto. Il ciclo for itererà fino al valore di arresto, ovvero la lunghezza dell'array, che sarà 4, poiché abbiamo quattro elementi in arr_list. Il valore iniziale sarà 0 e il passo sarà 1, quindi i valori partiranno da 0 e si fermeranno a 3, ovvero la lunghezza dell'array - 1, quindi 4 - 1 = 3.
utilizzando Python range() come elenco
In questo esempio vedremo come utilizzare l'output di range come 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 di range() e utilizzando il metodo list() potevamo convertire direttamente l'output dal formato range al formato elenco.
Utilizzo dei caratteri nell'intervallo Python()
Finora abbiamo utilizzato 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 <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Genera un errore dicendo 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 dell'intervallo
Puoi utilizzare un ciclo for per ottenere i valori dall'intervallo o utilizzare l'indice per accedere agli elementi da range().
Utilizzo del ciclo for
Esempio:
for i in range(6):
print(i)
Produzione:
0 1 2 3 4 5
Utilizzando l'indice
L'indice viene utilizzato con l'intervallo per ottenere il valore disponibile in quella posizione. Se il valore dell'intervallo è 5, per ottenere il valore iniziale, è possibile utilizzare range(5)[0] e il valore successivo range(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:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Usando lista()
Questo metodo stamperà tutti gli elementi dell'intervallo(). Utilizzando 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 indicato.
Esempio: ottieni numeri pari utilizzando range()
Utilizzando la funzione range() si ottiene l'elenco dei numeri pari compresi nell'intervallo specificato in input. I parametri per range() sono: start = 2, stop = 20 e step = 2, quindi i valori verranno incrementati di 2 e verranno visualizzati i 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 degli output two-range()
In questo esempio, concateneremo due funzioni range() utilizzando la funzione chain() del modulo itertools.
Esempio:
from itertools import chain print("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 one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Utilizzando range() con NumPy
Il modulo NumPy dispone di una funzione `arange()` che funziona e produce un output simile a quello di `range()`. La funzione `arange()` accetta gli stessi parametri di `range()`.
Sintassi:
arange(start, stop, step)
Per lavorare con NumPy, segui i passaggi indicati di seguito.
Fase 1: importa il modulo NumPy
import numpy
Nel caso in cui, durante l'esecuzione, venga visualizzato un errore che indica che il modulo numpy non è stato trovato, è necessario installare il modulo come mostrato nel passaggio 2.
Fase 2: Installa NumPy
pip install numpy
Fase 3: Esempio funzionante di arange() utilizzando NumPy
import numpy as np for 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 utilizzando range(), ma è possibile farlo utilizzando arange() di NumPy.
Esempio:
L'intervallo desiderato va da 0.5 a 1.5. Il valore verrà incrementato di 0.2.
import numpy as np for 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 numeri in virgola mobile vengono visualizzati con 16 cifre decimali. Ciò accade a causa della complessità della memorizzazione di numeri decimali in virgola mobile in formato binario. È anche possibile arrotondare i valori, se necessario, e limitarli al numero di cifre decimali desiderato.

