Como Converter uma String para Float ou Int em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com Python, você pode se deparar com situações em que precisa converter uma string em um tipo de dado numérico, como um float ou um inteiro. Essa é uma tarefa comum, especialmente ao lidar com entradas de usuário ou ao analisar dados de arquivos. Neste artigo, vamos explorar como realizar essas conversões de maneira fácil e eficiente.

Convertendo uma String para Float

Para converter uma string para float, você pode usar a função float(). Essa função recebe uma string como argumento e a converte em um número de ponto flutuante. Aqui está um exemplo simples:

a = "545.2222"
converted_float = float(a)
print(converted_float)  # Saída: 545.22220000000004
Testar

Note que a saída pode ter mais casas decimais do que a string original. Isso ocorre devido à forma como os números de ponto flutuante são representados na memória.

Convertendo uma String para Int

Se você precisa converter uma string para um inteiro, você pode primeiro convertê-la para float e depois para int usando a função int(). Isso é necessário quando a string representa um número decimal e você deseja truncá-lo para um inteiro. Veja como você pode fazer isso:

a = "545.2222"
converted_int = int(float(a))
print(converted_int)  # Saída: 545
Testar

Verificando se uma String Pode Ser Convertida

Antes de tentar converter uma string, é uma boa prática verificar se a conversão é possível. Isso pode prevenir erros no seu programa. Você pode definir uma função para verificar se uma string é um float válido:

def is_float(value):
    try:
        float(value)
        return True
    except ValueError:
        return False

Essa função tenta converter a string para float. Se for bem-sucedida, a função retorna True; caso contrário, ela captura o ValueError e retorna False.

Lidando com Diferentes Tipos de Entradas

É importante notar que nem todas as strings podem ser convertidas para float ou int. Por exemplo, strings com letras ou caracteres especiais farão com que a conversão falhe. Aqui estão alguns exemplos de strings e se elas podem ser convertidas para float:

  • "127": Pode ser convertida para float.
  • "True": Não pode ser convertida para float.
  • "123.456": Pode ser convertida para float.
  • "NaN": Pode ser convertida para float (representa “Not a Number” ou “Não é um Número”).
  • "infinity": Pode ser convertida para float (representa infinito positivo).

Uma Função Geral para Conversão

Se você deseja uma função que tenta converter uma string para int e recorre a float se necessário, você pode usar a seguinte:

def num(s):
    try:
        return int(s)
    except ValueError:
        return float(s)

Essa função primeiro tenta converter a string para int. Se falhar devido a um ValueError, ela então tenta converter a string para float.

Resumo

Neste artigo, aprendemos como converter strings para floats e inteiros em Python. Também discutimos como verificar se uma string é conversível para float e como lidar com diferentes tipos de entradas. Lembre-se, ao converter strings para tipos numéricos, sempre garanta que a string esteja em um formato que possa ser convertido para evitar erros no seu programa. Com essas técnicas, você será capaz de lidar com conversões numéricas com confiança em seus projetos Python.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial