Python string em float: aprenda a convertê-lo
As conversões de string para float do Python podem ser utilizadas para evitar erros ao incluir cadeias não numéricas em operações aritméticas.
Requisitos para a conversão
Para converter strings Python em floats, a string deve ter uma representaçã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 científica (por exemplo: "3.14" ou "2.7e-3"). A string não deve conter caracteres extra, espaços ou caracteres inválidos que não representem 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á disponível em todas as versões do Python, mas pode haver nuances ao usar certos métodos ou funções, dependendo da versão. Tenha em atenção que podem ocorrer erros durante a conversão, incluindo a introdução de strings que não representam um número válido. Valores especiais como NaN (Not a Number) ou Infinity não podem ser convertidos em floats. Os programadores devem saber como lidar com os erros que aparecem durante as conversões, por exemplo, utilizando blocos try except para os tratar como exceções.
Converter strings Python utilizando float()
A função float() é um método integrado do Python que converte uma cadeia de caracteres num número de ponto flutuante (float). A função float() é normalmente utilizada para mapear as entradas do utilizador de cadeias de caracteres para formatos numéricos, com o objetivo de realizar cálculos ou operações sobre valores numéricos. Em programas que trabalham com diferentes tipos de dados, float() é usado para garantir a consistência 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.1416pythonVocê 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 utilizador 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 inputpythonO código anterior é um loop que solicita aos utilizadores que introduzam um número. Em seguida, tenta-se converter o valor introduzido num número de vírgula flutuante. Dentro do bloco try, utiliza-se float(user_input) para converter a cadeia introduzida num float. Se a conversão funcionar, o número é armazenado 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 ValueError durante a conversão de string para float em Python, o código é executado no bloco except. Isso pode acontecer se os utilizadores introduzirem algo que não pode ser convertido em float, como uma letra. Nesse caso, eles são informados 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.1416pythonPrimeiro, 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"pythonNo exemplo anterior, o valor float 3.1416 é convertido pela função str() na string "3.1416".
str() também é útil para concatenar 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.618pythonAo converter floats em strings usando str(), a string resultante representa o valor como texto e não pode mais ser usada diretamente para cálculos numéricos ou operações matemáticas, a menos que seja primeiro reconvertida para uma forma numérica (como um float).
No nosso Guia Digital, também encontrará um tutorial sobre as conversões Python string para lista e Python string para datetime.