Pular para o conteúdo principal

Como converter uma cadeia de caracteres em um número inteiro em Python

Aprenda a converter cadeias de caracteres Python em números inteiros neste rápido tutorial.
Actualizado 15 de jan. de 2025  · 5 min de leitura

Os erros de tipo de dados são um dos obstáculos mais comuns em Python, especialmente para iniciantes. Um erro comum de tipo de dados ocorre quando os números são formatados como cadeias de caracteres, o que leva a erros de cálculo, percepções incorretas ou mensagens de erro absolutas.

Neste tutorial, mostrarei a você como lidar com esses erros e como converter cadeias de caracteres Python em números inteiros.

A resposta rápida: Como converter uma cadeia de caracteres Python em um número inteiro

Se a cadeia de caracteres representar um número inteiro (ou seja, 12), use a função int() para converter uma cadeia de caracteres em um número inteiro. Se a cadeia de caracteres representar um número decimal (ou seja, 12.5), use a função float() para converter uma cadeia de caracteres em um float. Você pode encontrar exemplos abaixo:

# Converting a string into an integer 
number_str = "10"
number_int = int(number_str)
print(number_int)  # Output: 10

# Converting a string into a float 
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float)  # Output: 10.5

Tipos de dados em Python

Python é uma linguagem tipada dinamicamente, que apresenta uma variedade de tipos de dados, desde strings e inteiros até números de ponto flutuante e booleanos. Entender isso é fundamental para uma programação eficaz. Abaixo, você encontra uma lista não exaustiva dos tipos de dados Python:

  • String (str): Dados textuais entre aspas. E.g., greeting = "Hello, World!"
  • Inteiro (int): Números inteiros sem um componente fracionário. E.g., age = 25
  • Flutuação (float): Números com um ponto decimal. E.g., height = 5.9
  • Booleano (bool): Representa True ou False
  • Lista (list): Uma coleção ordenada de itens que podem ser de tipos de dados mistos. As listas são mutáveis, permitindo modificações. Por exemplo, colors = ["red", "blue", "green"]
  • Dicionário (dict): Uma coleção de pares chave-valor, permitindo que você armazene e recupere dados usando chaves. Por exemplo, person = {"name": "Alice", "age": 30}

Para saber mais sobre tipos de dados, leia este tutorial sobre estruturas de dados em Python no DataCamp.

Por que converter uma cadeia de caracteres em um número inteiro?

Os tipos de dados corretos são essenciais para cálculos precisos. Considere o exemplo a seguir. Vamos supor que você tenha dois números 5 e 10 que são cadeias de caracteres. Se você os somar, a resposta será 510, pois eles estão sendo tratados como cadeias de caracteres que são concatenadas com o operador +.

Para obter a resposta exata (nesse caso, 15), eles precisariam ser convertidos em números inteiros antes de calcular a soma. Essa é uma ilustração simples, mas imagine que isso seja aplicado a um conjunto de dados de receita da empresa - isso pode levar a decisões comerciais ruins.

# Summing two numbers that are actually strings
'5'+'10'# This returns 510

# Converting them to integers before summing them
int('5') + int('10') # This returns 15

Como converter cadeias de caracteres em números inteiros em Python

Ao trabalhar com dados numéricos formatados como cadeias de caracteres, muitas vezes é necessário converter essas cadeias em números inteiros para cálculos ou outras operações numéricas. O Python oferece uma maneira direta de fazer isso usando a função int(). Essa função recebe uma cadeia de caracteres como entrada e retorna sua representação inteira, desde que a cadeia represente um número inteiro válido.

# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer)  # Output: 42

Como converter strings em floats em Python

Nos casos em que a cadeia de caracteres representa um número com um ponto decimal, a conversão para um número inteiro seria inadequada e resultaria em um erro. Em vez disso, você pode converter essas strings em floats usando a função float() no Python. O uso de tipos de dados de flutuação é fundamental, especialmente quando você trabalha com dados altamente precisos, como dados financeiros ou dados de medição de sensores.

# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float)  # Output: 3.14

Problemas na conversão de cadeias de caracteres em números em Python

Ao converter cadeias de caracteres em números, algumas armadilhas podem levar a erros ou resultados inesperados.

Conversão de cadeias de caracteres não numéricas

A tentativa de converter uma cadeia de caracteres não numérica, como 'hello world', em um número gerará um erro. Se você quiser capturar programaticamente as cadeias de caracteres que não podem ser convertidas em números inteiros, tente usar um bloco try/except para lidar com esses casos de forma elegante.

try:
    invalid_number = int("hello world")
except ValueError:
    print("This is not a number.")

Conversão de strings de float em inteiros

A conversão de uma string que representa um float diretamente em um número inteiro resulta em um ValueError. Embora você possa converter uma string que representa um número inteiro em um float, não é possível fazer o contrário. Aqui está um exemplo do erro que você pode receber:

string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal) 
# Returns ValueError: invalid literal for int() with base 10: '13.5'

Cordas com bases diferentes

Quando falamos de "bases" em números, estamos nos referindo ao sistema de numeração no qual o número é expresso. A base mais comum é 10, também conhecida como sistema decimal, que é a que usamos no dia a dia. Ele consiste em 10 dígitos, de 0 a 9.

Entretanto, existem outras bases que são usadas em vários campos, especialmente na computação. Por exemplo:

  • Binário (Base 2): Usa apenas 0 e 1. É a linguagem fundamental dos computadores.
  • Octal (base 8): Usa dígitos de 0 a 7. É menos comum atualmente, mas era usado em sistemas de computação mais antigos.
  • Hexadecimal (base 16): Usa dígitos de 0 a 9 e letras de A a F (onde A=10 e F=15). É amplamente usado em computação, especialmente para códigos de cores em web design e endereços de memória.

Quando você tem uma string que representa um número em uma base diferente de 10, é necessário especificar a base para que o Python possa interpretá-la corretamente. Aqui está um exemplo usando um número hexadecimal:

# Convert a hexadecimal string to an integer
hex_string = "1A"  # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16)  # The '16' tells Python it's in base 16
print(converted_int)  # Output: 26

Conclusão

Navegar pelos tipos de dados e conversões em Python é uma habilidade fundamental para a programação. Ao entender como converter strings em inteiros e floats com precisão, você pode evitar armadilhas comuns e garantir que a manipulação de dados esteja correta. Se você quiser saber mais sobre Python, confira nossa Folha de dicas de Python para iniciantes, nosso guia sobre Como aprender Python e nossos cursos de Python.


Adel Nehme's photo
Author
Adel Nehme
LinkedIn

Adel é educador de ciência de dados, palestrante e evangelista da DataCamp, onde lançou vários cursos e treinamentos ao vivo sobre análise de dados, aprendizado de máquina e engenharia de dados. Ele é apaixonado pela disseminação das habilidades e da alfabetização de dados nas organizações e pela interseção entre tecnologia e sociedade. Ele tem um mestrado em ciência de dados e análise de negócios. Em seu tempo livre, você pode encontrá-lo passeando com seu gato Louis.

Perguntas frequentes

Como verificar se uma string é um número inteiro em Python?

Para verificar se uma cadeia de caracteres representa um número inteiro, você pode usar o método str.isdigit() se a cadeia de caracteres contiver apenas dígitos e nenhum sinal (+/-) ou decimais:

string = "42"
if string.isdigit():
    print("The string is an integer.")
else:
    print("The string is not an integer.")

Para cadeias de caracteres que podem incluir um sinal (+/-), você pode usar um método mais robusto:

string = "-42"
try:
    int(string)
    print("The string is an integer.")
except ValueError:
    print("The string is not an integer.")

Como converter um número inteiro em uma string em Python?

Use a função str() para converter um número inteiro em uma cadeia de caracteres. Por exemplo:

number = 42
string_number = str(number)
print(string_number)  # Output: "42"

O que devo fazer se a cadeia de caracteres contiver um número decimal e eu quiser convertê-lo em um número inteiro?

Primeiro, converta a string em um float usando a função float() e, em seguida, converta-a em um inteiro usando int(). Por exemplo:

decimal_string = "13.5"
converted_integer = int(float(decimal_string))
print(converted_integer)  # Output: 13
Temas

Continue sua jornada de aprendizado de Python hoje mesmo!

Certificação disponível

curso

Introdução ao Python

4 hr
5.9M
Domine os fundamentos da análise de dados com Python em apenas quatro horas. Neste curso on-line, você conhecerá a interface Python e explorará os pacotes populares.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial de strings em Python

Neste tutorial, você aprenderá tudo sobre as cadeias de caracteres do Python: fatiamento e encadeamento, manipulação e formatação com a classe Formatter, cadeias de caracteres f, modelos e muito mais!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Como aparar uma cadeia de caracteres em Python: Três métodos diferentes

Aprenda os fundamentos do corte de caracteres à esquerda e à direita de uma string em Python.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Tutorial de indexação de lista Python()

Neste tutorial, você aprenderá exclusivamente sobre a função index().
Sejal Jaiswal's photo

Sejal Jaiswal

6 min

tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Tutorial de lambda em Python

Aprenda uma maneira mais rápida de escrever funções em tempo real com as funções lambda.
DataCamp Team's photo

DataCamp Team

3 min

Ver maisVer mais