Tentar Conversão float()
Nesta etapa, exploraremos como usar a função float() para converter strings em números de ponto flutuante. Isso é útil quando você precisa trabalhar com números que possuem casas decimais ou são representados em notação científica.
A função float() é uma função embutida no Python que tenta converter seu argumento em um número de ponto flutuante. Se o argumento for uma string, ela deve ser uma representação válida de um número de ponto flutuante.
Vamos modificar nosso script novamente para usar float() e ver como ele lida com diferentes strings:
-
Abra o arquivo numeric_strings.py no editor VS Code.
-
Modifique o código para incluir a função float() e lidar com possíveis erros:
## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = " 56 "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"
## Try converting the strings to floats
strings = [string1, string2, string3, string4, string5, string6, string7, string8]
for s in strings:
try:
float_value = float(s)
print(f"String '{s}' can be converted to float: {float_value}")
except ValueError:
print(f"String '{s}' cannot be converted to float")
-
Salve o arquivo numeric_strings.py.
-
Execute o script a partir do terminal:
python numeric_strings.py
Você deve ver a seguinte saída:
String '123' can be converted to float: 123.0
String '3.14' can be converted to float: 3.14
String '-42' can be converted to float: -42.0
String '0' can be converted to float: 0.0
String ' 56 ' can be converted to float: 56.0
String 'abc' cannot be converted to float
String '123.45.67' cannot be converted to float
String '1e10' can be converted to float: 10000000000.0
Como você pode ver, float() pode converter com sucesso strings que representam inteiros, números decimais e números em notação científica. Ele também remove automaticamente espaços em branco no início e no final (como demonstrado por string5). No entanto, ele levanta um ValueError se a string não puder ser interpretada como um número de ponto flutuante válido (como demonstrado por string6 e string7).
Usar blocos try-except nos permite lidar com esses possíveis erros de forma elegante e evitar que nosso programa trave. Esta é uma prática comum e importante ao trabalhar com entrada do usuário ou dados de fontes externas.