Python range() Funzione: Float, Elenco, Ciclo For Esempi

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 .The Python range() รจ un comando molto utile e utilizzato principalmente quando รจ necessario eseguire iterazioni utilizzando il ciclo for.

Sintassi

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 stop decide il valore al quale la funzione range deve fermarsi. รˆ un input obbligatorio per la funzione di intervallo. L'ultimo valore sarร  sempre inferiore di 1 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'inizio all'indice di arresto specificato.

Python range() Funzione e cronologia

Python range() รจ stato introdotto a partire dalla versione 3 di Python, prima che la funzione fosse xrange().

Sia range che xrange() vengono utilizzati per produrre 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 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 insieme di dati. 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รฉ l'inizio non รจ dato, l'inizio รจ 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

Utilizzando start e stop 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ร  inferiore di 1 rispetto al valore di arresto 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ร  essere incrementato di 2. Se il valore del passo non viene fornito, il valore predefinito per il passo รจ 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 fornito. Proviamo ora un esempio per ottenere il valore decrementato nell'intervallo indicato.

Incremento dei valori nell'intervallo utilizzando un passo positivo.

Il parametro step in range() puรฒ essere utilizzato per incrementare/decrementare i valori. Per impostazione predefinita, รจ un valore positivo 1. Quindi fornirร  sempre valori incrementati.

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

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

Produzione:

1 6 11 16 21 26

Reverse Range: decrementa i valori utilizzando il passo negativo

Il passaggio del parametro con valore negativo in range() puรฒ essere utilizzato per ottenere valori decrementati. Nell'esempio seguente il valore del passo รจ negativo, quindi l'uscita sarร  decrementata rispetto al 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, ovvero -1. Con gli input precedenti 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 gamma()

Lavoriamo ora su range() utilizzando numeri in virgola mobile.

Esempio:

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

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

L'uscita รจ:

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 genera un errore poichรฉ la funzione range() non supporta numeri in virgola mobile per inizio, fine e passo.

Utilizzo del ciclo for con Python gamma()

In questo esempio utilizzeremo un array di numeri e vediamo come utilizzare l'iterazione dell'array all'interno del ciclo for utilizzando 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 utilizzato len(arr_list) come valore di stop. Il ciclo for ripeterร  fino al valore di stop, ovvero la lunghezza dell'array, che sarร  4, poichรฉ abbiamo quattro elementi nell'arr_list. Il valore iniziale sarร  0 e il passaggio sarร  1. Quindi i valori inizieranno da 0 e si fermeranno a 3, ovvero la lunghezza dell'array -1 significa 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 range() si 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 forniranno 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 2 funzioni range() con l'aiuto della 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 ha la funzione arange() che funziona e fornisce un output simile a range(). Il metodo organizzare() accetta gli stessi parametri di range().

Sintassi:

arange(start, stop, step)

Per lavorare con NumPy seguire 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 il modulo Numpy non 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 utilizzando NumPy arange().

Esempio:

L'intervallo che vogliamo รจ compreso tra 0.5 e 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 dei numeri float sono mostrati con 16 cifre decimali. Ciรฒ accade a causa della complessitร  di memorizzare numeri float decimali in formato binario. Puoi anche arrotondare i valori se necessario e limitarli alle cifre decimali di cui hai bisogno.

Sintesi

  • 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 fino all'indice di fine.
  • Python range() รจ stato introdotto da Python versione 3, prima che xrange() fosse la funzione.
  • La funzione range() fornisce la sequenza di numeri e restituisce un elenco di numeri. La funzione xrange() fornisce un oggetto generatore che deve essere sottoposto a un ciclo for per ottenere i valori.
  • Il parametro step in range() puรฒ essere utilizzato per incrementare/decrementare i valori. Per impostazione predefinita, รจ un valore positivo 1. Quindi fornirร  sempre valori incrementati.
  • Python genera un errore per i numeri in virgola mobile poichรฉ la funzione range() supporta solo valori interi.
  • รˆ possibile accedere ai valori di range() utilizzando for-loop, utilizzando index e list()
  • Il modulo NumPy ha la funzione arange() che funziona e fornisce un output simile a range(). arange() accetta gli stessi parametri di range().
  • รˆ possibile ottenere la sequenza a virgola mobile NumPy arange() che non รจ supportata utilizzando range().

Riassumi questo post con: