Artigo original: How to Convert Strings into Integers in Python
Do mesmo modo que ocorre com o método integrado str()
, o Python também oferece o método int()
, que recebe um objeto string como argumento e retorna um objeto de número inteiro.
Exemplo de utilização:
# Aqui, idade é um objeto de string
idade = "18"
print(idade)
# Converter uma string em um número inteiro
int_idade = int(idade)
print(int_idade)
Resultado:
18
18
Embora o resultado seja muito parecido visualmente, na primeira linha, temos um objeto do tipo string, enquanto na segunda linha temos um objeto do tipo número inteiro. O exemplo abaixo mostrará isso mais claramente:
idade = "18"
print(idade + 2)
Resultado:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
No código acima, o erro deve mostrar que, primeiramente, você deve converter idade
que é um objeto string para um número inteiro antes de adicionar algo a ele.
idade = "18"
idade_int = int(idade)
print(idade_int + 2)
Resultado:
20
Tenha em mente algumas exceções:
- Um número decimal como argumento retornará um novo número decimal, que será arredondado para baixo e convertido para o número inteiro mais próximo. Por exemplo:
print(int(7.9))
retornará7
. Por outro lado,print(int("7.9"))
retornará um erro, uma vez que um número decimal como uma string não poderá ser convertido em um número inteiro.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '7.9'
- Caso tente converter palavras em números inteiros, o resultado retornará o mesmo erro. Por exemplo,
print(int("um"))
retornará o seguinte:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'um'