Le con­ver­sio­ni da stringa a float in Python ti per­met­to­no di evitare errori dovuti alla presenza di sequenze di caratteri non numerici in ope­ra­zio­ni arit­me­ti­che.

I requisiti

In Python, per eseguire la con­ver­sio­ne delle stringhe in float è ne­ces­sa­rio che la stringa contenga una rap­pre­sen­ta­zio­ne numerica valida di un numero a virgola mobile. In pratica può contenere numeri in formato decimale, anche con punti decimali o in notazione scien­ti­fi­ca (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 rap­pre­sen­ta­no valori numerici. In caso contrario, la con­ver­sio­ne può non andare a buon fine.

La con­ver­sio­ne da stringa a float in Python è una funzione fon­da­men­ta­le ed è di­spo­ni­bi­le in tutte le versioni di Python. Tuttavia, le diverse versioni di Python possono pre­sen­ta­re lievi dif­fe­ren­ze nell’utilizzo di certi metodi o funzioni. È im­por­tan­te tenere conto dei possibili errori nella con­ver­sio­ne. Essi com­pren­do­no l’im­mis­sio­ne di stringhe che non co­sti­tui­sco­no un numero valido. I valori speciali come NaN (Not a Number) oppure Infinity non possono essere con­ver­ti­ti in float.

Per lavorare con le con­ver­sio­ni gli svi­lup­pa­to­ri devono quindi gestire ade­gua­ta­men­te gli errori, ad esempio uti­liz­zan­do i blocchi try-except, che per­met­to­no di rilevare le eccezioni e reagire cor­ret­ta­men­te quando in­di­vi­dua­te.

Con­ver­sio­ne di stringhe in Python con float()

La funzione float() è un metodo integrato in Python che consente di con­ver­ti­re una stringa in un numero a virgola mobile (float). Spesso la funzione float() serve a rap­pre­sen­ta­re le stringhe inserite dall’utente in formati numerici e permette di uti­liz­zar­le per calcoli o ope­ra­zio­ni su valori numerici. Nei programmi che lavorano con tipi di dati diversi, float() è uti­liz­za­ta per garantire la coerenza dei dati con­ver­ten­do i valori nel formato numerico de­si­de­ra­to.

Per eseguire la con­ver­sio­ne da stringa a float in Python, as­se­gnia­mo una stringa valida alla funzione float() come argomento:

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

Inoltre puoi con­ver­ti­re anche altri tipi numerici in numeri a virgola mobile, come int o complex, as­se­gnan­do­li alla funzione float().

Uti­liz­zan­do un blocco try-except è possibile rilevare gli input utente non validi in una con­ver­sio­ne 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 con­ver­ti­re il valore inserito in un numero a virgola mobile. All’interno del blocco try, la stringa inserita deve essere con­ver­ti­ta 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 in­ter­rom­pe­re il ciclo e far pro­se­gui­re il programma.

Se durante la con­ver­sio­ne da stringa a float si verifica un Va­lueEr­ror, viene eseguito il codice nel blocco except. Ciò può accadere se l’utente inserisce un valore che non può essere con­ver­ti­to in float, ad esempio una lettera. In questo caso l’input viene indicato come non valido e il ciclo prosegue per ri­chie­de­re l’im­mis­sio­ne di un nuovo valore valido.

Con­ver­sio­ne da stringa a float in Python con NumPy

Per con­ver­ti­re una stringa di Python in float con NumPy puoi uti­liz­za­re 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à in­stal­la­to. Suc­ces­si­va­men­te, con NumPy puoi applicare la funzione numpy.float64() alla sequenza di caratteri string_value in modo da con­ver­ti­re la stringa in un valore a virgola mobile a 64 bit.

Con­ver­sio­ne con str()

Viceversa, la funzione str() in Python serve a con­ver­ti­re i valori ot­te­nen­do­ne una stringa. Questa funzione può lavorare anche con numeri a virgola mobile per con­ver­tir­li 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 tra­sfor­ma­to nella stringa "3.1416" con la funzione str().

La funzione str() è utile anche per con­ca­te­na­re più valori float con le f-string, che sono una for­mat­ta­zio­ne 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 con­ver­sio­ne da float a stringa con str(), la stringa ri­sul­tan­te mostra il valore sotto forma di testo e non può più essere uti­liz­za­ta di­ret­ta­men­te per calcoli numerici o per ope­ra­zio­ni ma­te­ma­ti­che, a meno di ri­con­ver­tir­la prima in un formato numerico (ad esempio, in un float).

Consiglio

Nella nostra guida troverai anche istru­zio­ni per le con­ver­sio­ni da stringa a lista in Python e da stringa al modulo datetime in Python.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana
Vai al menu prin­ci­pa­le