Introduzione
In questo articolo, utilizzeremo la funzione float()
di Python per convertire le stringhe in numeri decimali. E utilizzeremo anche la funzione str()
di Python per convertire i numeri decimali in stringhe.
È importante convertire correttamente i tipi di dati prima di utilizzarli per calcoli e concatenazioni al fine di evitare errori durante l’esecuzione.
Prerequisiti
Per completare questo tutorial, avrai bisogno di:
- Familiarità con l’installazione di Python 3. E familiarità con la programmazione in Python. Come programmare in Python 3 o utilizzando VS Code per Python.
Questo tutorial è stato testato con Python 3.9.6.
Utilizzo della funzione float()
Possiamo convertire una stringa in un numero float in Python utilizzando la funzione float()
. Questa è una funzione integrata utilizzata per convertire un oggetto in un numero in virgola mobile. Internamente, la funzione float()
chiama la funzione __float__()
dell’oggetto specificato.
Esempio
Diamo un’occhiata a un esempio di conversione di una stringa in float in Python:
input_1 = '10.5674'
input_1 = float(input_1)
print(type(input_1))
print('Float Value =', input_1)
Output:
<class 'float'>
Float Value = 10.5674
Il valore stringa di '10.5674'
è stato convertito in un valore float di 10.5674
.
Perché dobbiamo convertire una stringa in float?
Se riceviamo un valore float dall’input dell’utente tramite il terminale o leggendolo da un file, essi sono oggetti stringa. Dobbiamo convertirli esplicitamente in float in modo da poter eseguire le operazioni necessarie su di essi, come l’addizione, la moltiplicazione, ecc.
input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)
input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)
print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')
Nota: Se non sei familiare con la formattazione delle stringhe utilizzando il prefisso f, leggi Stringhe f in Python.
Eseguiamo questo codice e forniamo i valori float per input_1
e input_2
:
Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69
La somma risultante di 10.234
e 2.456
è 12.69
.
Idealemente, dovremmo utilizzare un blocco try-except
per gestire le eccezioni in caso di input non valido da parte dell’utente.
Utilizzando la funzione str()
Possiamo anche convertire un float in una stringa usando la funzione str()
. Questo potrebbe essere necessario in situazioni in cui vogliamo concatenare valori float.
Esempio
Diamo un’occhiata a un esempio:
input_1 = 10.23
input_2 = 20.34
input_3 = 30.45
# utilizzando f-string da Python 3.6+, cambia in format() per versioni più vecchie
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')
Eseguiamo questo codice:
Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45
Concatenando 10.23
e 20.34
otteniamo la stringa '10.2320.34'
. Questo codice produce anche due versioni di valori separati da virgola (CSV).
Se non convertiamo il float in stringa nel programma precedente, la funzione join()
genererà un’eccezione. Inoltre, non saremo in grado di utilizzare l’operatore +
per concatenare poiché aggiungerà i numeri in virgola mobile.
Conclusione
Puoi controllare lo script Python completo e altri esempi in Python nel nostro repository su GitHub.
Riferimenti:
Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float