Como converter string em int em Python (casting e bases seguras)
Aprenda como converter uma string em um inteiro em Python usando a função int(). Lide com erros com segurança e converta números de binário, octal ou hexadecimal.
Visão geral
Converter uma representação de string de um número em um número inteiro real é uma tarefa frequente no desenvolvimento de aplicativos. Esse processo, muitas vezes chamado de conversão, é essencial ao lidar com entradas brutas do usuário, ler arquivos de configuração, analisar argumentos de interfaces de linha de comando ou extrair dados da web. Como Python é uma linguagem fortemente tipada, você não pode realizar operações matemáticas em representações de strings de números sem convertê-las primeiro.
O construtor `int()` integrado do Python é a principal ferramenta para esta conversão. Em sua forma mais simples, passar uma string numérica (como `"42"`) para `int()` retorna seu inteiro equivalente. No entanto, passar uma string não numérica (como `"hello"`) ou uma string representando um número de ponto flutuante (como `"3.14"`) gerará um `ValueError`. Para escrever aplicativos robustos, é prática padrão agrupar operações de conversão em um bloco `try-except` para lidar normalmente com entradas inesperadas.
Além da conversão padrão de base 10, a função `int()` aceita um argumento `base` opcional. Isso permite analisar facilmente strings que representam números em diferentes sistemas numéricos, como binário (base 2), octal (base 8) ou hexadecimal (base 16). Por exemplo, `int("1010", 2)` analisa corretamente a string binária no número inteiro decimal `10`, tornando-a uma ferramenta versátil para programação matemática especializada ou de nível inferior.
Saída de código e execução
Este script demonstra a conversão de uma string em um número inteiro, o tratamento de exceções e a conversão de diferentes representações básicas.
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")
# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
result = int(invalid_str)
except ValueError:
print(f"Could not convert '{invalid_str}' to an integer.")
# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255Implementação passo a passo
- Passe a string numérica para a função int() integrada.
- Envolva suas operações de conversão em blocos try...except ValueError para lidar com formatos inválidos.
- Forneça um segundo argumento (por exemplo, base=16) para converter valores de string escritos em outras bases.
Perguntas frequentes
Como posso converter uma string flutuante como '12.34' em um número inteiro?
Você deve primeiro convertê-lo em um float e depois em um int: int(float("12.34")). Chamar int("12.34") gera diretamente um ValueError.
Como posso verificar se uma string pode ser convertida com segurança em um int?
Você pode usar o método de string .isdigit(), mas observe que ele retorna False para sinais negativos ou espaços em branco. Um bloco try-except é a maneira mais robusta.
Tópicos Relacionados
Aprenda as melhores técnicas de formatação de strings em Python. Compare strings F modernas, format() e formatação percentual com exemplos de código.
Como lidar com exceções em PythonAprenda como lidar com exceções em Python usando blocos try, exceto, else e finalmente. Escreva código Python livre de erros e resistente a falhas.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Strings Python
Manipulação de strings mestre em Python. Aprenda métodos de string, técnicas de fatiamento, concatenação e formatação com exemplos de códigos claros e executáveis.
Folha de dicas dos métodos de string Python
Um guia de referência completo para manipulação de strings em Python. Domine a formatação, pesquisa, divisão, substituição e verificação de propriedades de string.
Decoradores Python versus padrão de design de decorador: as principais diferenças
Compare os decoradores Python e o padrão de design clássico do decorador. Entenda as diferenças entre o agrupamento de funções em tempo de definição e a composição dinâmica de objetos em tempo de execução com código executável.