As con­ver­sões de string para float do Python podem ser uti­li­za­das para evitar erros ao incluir cadeias não numéricas em operações arit­mé­ti­cas.

Re­qui­si­tos para a conversão

Para converter strings Python em floats, a string deve ter uma re­pre­sen­ta­ção numérica válida de um número de ponto flutuante, ou seja, pode conter números no formato decimal, incluindo pontos decimais ou notação ci­en­tí­fica (por exemplo: "3.14" ou "2.7e-3"). A string não deve conter ca­rac­te­res extra, espaços ou ca­rac­te­res inválidos que não re­pre­sen­tem valores numéricos. Caso contrário, a conversão poderá falhar.

A conversão de string para float em Python é uma função básica e está dis­po­ní­vel em todas as versões do Python, mas pode haver nuances ao usar certos métodos ou funções, de­pen­dendo da versão. Tenha em atenção que podem ocorrer erros durante a conversão, incluindo a in­tro­du­ção de strings que não re­pre­sen­tam um número válido. Valores especiais como NaN (Not a Number) ou Infinity não podem ser con­ver­ti­dos em floats. Os pro­gra­ma­do­res devem saber como lidar com os erros que aparecem durante as con­ver­sões, por exemplo, uti­li­zando blocos try except para os tratar como exceções.

Converter strings Python uti­li­zando float()

A função float() é um método integrado do Python que converte uma cadeia de ca­rac­te­res num número de ponto flutuante (float). A função float() é nor­mal­mente utilizada para mapear as entradas do uti­li­za­dor de cadeias de ca­rac­te­res para formatos numéricos, com o objetivo de realizar cálculos ou operações sobre valores numéricos. Em programas que trabalham com di­fe­ren­tes tipos de dados, float() é usado para garantir a con­sis­tên­cia dos mesmos, pois converte os valores para o formato numérico desejado.

Para converter de string para float em Python, deve passar uma cadeia válida como argumento para a função float():

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

Você também pode converter outros tipos numéricos, como int ou complex, em um número de vírgula flutuante, passando-os para a função float().

Pode utilizar um bloco try except para detetar entradas inválidas do uti­li­za­dor ao converter uma string num 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

O código anterior é um loop que solicita aos uti­li­za­do­res que in­tro­du­zam um número. Em seguida, tenta-se converter o valor in­tro­du­zido num número de vírgula flutuante. Dentro do bloco try, utiliza-se float(user_input) para converter a cadeia in­tro­du­zida num float. Se a conversão funcionar, o número é ar­ma­ze­nado em float_value e impresso. Em seguida, utiliza-se a instrução break para terminar o loop e continuar com o programa.

Se ocorrer um Va­lu­e­Er­ror durante a conversão de string para float em Python, o código é executado no bloco except. Isso pode acontecer se os uti­li­za­do­res in­tro­du­zi­rem algo que não pode ser con­ver­tido em float, como uma letra. Nesse caso, eles são in­for­ma­dos de que a entrada não é válida e o loop continua para solicitar novamente uma entrada válida.

Converter string em float em Python com Numpy

Para converter uma string Python em um float com NumPy, pode utilizar a função numpy.float64(). Assim, a partir de uma string, obterá um valor de ponto flutuante de 64 bits.

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

Primeiro, deve importar o NumPy para o seu script, caso ainda não esteja instalado. Depois, pode utilizar o NumPy para aplicar a função numpy.float64() à cadeia string_value, a fim de converter a cadeia num valor de ponto flutuante de 64 bits.

Conversão com str()

Por outro lado, a função str() do Python é utilizada para converter valores numa string. Também é possível trabalhar com números de vírgula flutuante para convertê-los numa cadeia.

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

No exemplo anterior, o valor float 3.1416 é con­ver­tido pela função str() na string "3.1416".

str() também é útil para con­ca­te­nar vários valores float com f strings, que é um formato de string do 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

Ao converter floats em strings usando str(), a string re­sul­tante re­pre­senta o valor como texto e não pode mais ser usada di­re­ta­mente para cálculos numéricos ou operações ma­te­má­ti­cas, a menos que seja primeiro re­con­ver­tida para uma forma numérica (como um float).

Dica

No nosso Guia Digital, também en­con­trará um tutorial sobre as con­ver­sões Python string para lista e Python string para datetime.

Ir para o menu principal