Python: conversione da stringa a float

Le conversioni da stringa a float in Python ti permettono di evitare errori dovuti alla presenza di sequenze di caratteri non numerici in operazioni aritmetiche.

I requisiti

In Python, per eseguire la conversione delle stringhe in float è necessario che la stringa contenga una rappresentazione numerica valida di un numero a virgola mobile. In pratica può contenere numeri in formato decimale, anche con punti decimali o in notazione scientifica (ad esempio, "3.14" oppure "2.7e-3"). Inoltre, la stringa deve essere priva di ulteriori caratteri, spazi vuoti o caratteri non validi che non rappresentano valori numerici. In caso contrario, la conversione può non andare a buon fine.

La conversione da stringa a float in Python è una funzione fondamentale ed è disponibile in tutte le versioni di Python. Tuttavia, le diverse versioni di Python possono presentare lievi differenze nell’utilizzo di certi metodi o funzioni. È importante tenere conto dei possibili errori nella conversione. Essi comprendono l’immissione di stringhe che non costituiscono un numero valido. I valori speciali come NaN (Not a Number) oppure Infinity non possono essere convertiti in float.

Per lavorare con le conversioni gli sviluppatori devono quindi gestire adeguatamente gli errori, ad esempio utilizzando i blocchi try-except, che permettono di rilevare le eccezioni e reagire correttamente quando individuate.

Conversione di stringhe in Python con float()

La funzione float() è un metodo integrato in Python che consente di convertire una stringa in un numero a virgola mobile (float). Spesso la funzione float() serve a rappresentare le stringhe inserite dall’utente in formati numerici e permette di utilizzarle per calcoli o operazioni su valori numerici. Nei programmi che lavorano con tipi di dati diversi, float() è utilizzata per garantire la coerenza dei dati convertendo i valori nel formato numerico desiderato.

Per eseguire la conversione da stringa a float in Python, assegniamo una stringa valida alla funzione float() come argomento:

str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
python

Inoltre puoi convertire anche altri tipi numerici in numeri a virgola mobile, come int o complex, assegnandoli alla funzione float().

Utilizzando un blocco try-except è possibile rilevare gli input utente non validi in una conversione da stringa a float:

while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
python

Il codice qui sopra è un ciclo che chiede all’utente di inserire un numero. Il ciclo tenta quindi di convertire il valore inserito in un numero a virgola mobile. All’interno del blocco try, la stringa inserita deve essere convertita in un float per mezzo di float(user_input). Se la conversione va a buon fine, il numero viene salvato infloat_valueed emesso come output. A seguire, utilizziamo l’istruzionebreak` per interrompere il ciclo e far proseguire il programma.

Se durante la conversione da stringa a float si verifica un ValueError, viene eseguito il codice nel blocco except. Ciò può accadere se l’utente inserisce un valore che non può essere convertito in float, ad esempio una lettera. In questo caso l’input viene indicato come non valido e il ciclo prosegue per richiedere l’immissione di un nuovo valore valido.

Conversione da stringa a float in Python con NumPy

Per convertire una stringa di Python in float con NumPy puoi utilizzare la funzione numpy.float64(). In questo modo, dalla stringa otterrai un valore a virgola mobile a 64 bit.

import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
python

Per prima cosa, devi importare NumPy nel tuo script, se non è già installato. Successivamente, con NumPy puoi applicare la funzione numpy.float64() alla sequenza di caratteri string_value in modo da convertire la stringa in un valore a virgola mobile a 64 bit.

Conversione con str()

Viceversa, la funzione str() in Python serve a convertire i valori ottenendone una stringa. Questa funzione può lavorare anche con numeri a virgola mobile per convertirli in una sequenza di caratteri.

float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
python

Nell’esempio qui sopra, il valore float 3.1416 viene trasformato nella stringa "3.1416" con la funzione str().

La funzione str() è utile anche per concatenare più valori float con le f-string, che sono una formattazione delle stringhe in Python:

float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.618
python

Ricordati che, nella conversione da float a stringa con str(), la stringa risultante mostra il valore sotto forma di testo e non può più essere utilizzata direttamente per calcoli numerici o per operazioni matematiche, a meno di riconvertirla prima in un formato numerico (ad esempio, in un float).

Consiglio

Nella nostra guida troverai anche istruzioni per le conversioni da stringa a lista in Python e da stringa al modulo datetime in Python.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top