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'