Neste tutorial, aprenderemos como converter String para int em Python e int para String em Python. Em nosso tutorial anterior, aprendemos sobre a função Python List append.
Python String para Int
Se você leu nossos tutoriais anteriores, pode notar que em algum momento usamos essa conversão. Na verdade, isso é necessário em muitos casos. Por exemplo, se você está lendo alguns dados de um arquivo, então eles estarão em formato de String e você terá que converter a String para um int. Agora, vamos direto ao código. Se você deseja converter um número que está representado na string para int, você deve usar a função int()
para fazer isso. Veja o seguinte exemplo:
num = '123' # string data
# imprimir o tipo
print('Type of num is :', type(num))
# converter usando int()
num = int(num)
# imprimir o tipo again
print('Now, type of num is :', type(num))
A saída do seguinte código será
Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

Convertendo String para int de base diferente
Se a string que você deseja converter em um número inteiro pertence a uma base numérica diferente da base 10, você pode especificar a base para a conversão. Mas lembre-se de que o número inteiro de saída será sempre na base 10. Outra coisa que você precisa lembrar é que a base fornecida deve estar entre 2 e 36. Veja o exemplo a seguir para entender a conversão de string para int com o argumento de base.
num = '123'
# imprima a string original
print('The original string :', num)
# considerando '123' como na base 10, converta para base 10
print('Base 10 to base 10:', int(num))
# considerando '123' como na base 8, converta para base 10
print('Base 8 to base 10 :', int(num, base=8))
# considerando '123' como na base 6, converta para base 10
print('Base 6 to base 10 :', int(num, base=6))
O resultado do seguinte código será

Erro de Valor ao converter String para int
Ao converter de string para int, você pode obter a exceção ValueError
. Essa exceção ocorre se a string que você deseja converter não representar nenhum número. Suponha que você queira converter um número hexadecimal para um inteiro. Mas você não passou o argumento base=16 na função int(). Isso irá gerar uma exceção ValueError
se houver algum dígito que não pertença ao sistema numérico decimal. O exemplo a seguir ilustrará essa exceção ao converter uma string para int.
"""
Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12' # this is a hexadecimal value
# a variável é considerada como valor decimal durante a conversão
print('The value is :', int(num))
# a variável é considerada como valor hexadecimal durante a conversão
print('Actual value is :', int(num, base=16))
"""
Scenario 2: The interpreter will raise ValueError exception
"""
num = '1e' # this is a hexadecimal value
# a variável é considerada como valor hexadecimal durante a conversão
print('Actual value of \'1e\' is :', int(num, base=16))
# a variável é considerada como valor decimal durante a conversão
print('The value is :', int(num)) # this will raise exception
A saída do código acima será:
The value is : 12
Actual value is : 18
Actual value of '1e' is : 30
Traceback (most recent call last):
File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in
print('The value is :', int(num)) # this will raise exception
ValueError: invalid literal for int() with base 10: '1e'

Python int para String
Converter um int para string não requer esforço ou verificação. Basta usar a função str()
para fazer a conversão. Veja o exemplo a seguir.
hexadecimalValue = 0x1eff
print('Type of hexadecimalValue :', type(hexadecimalValue))
hexadecimalValue = str(hexadecimalValue)
print('Type of hexadecimalValue now :', type(hexadecimalValue))
A saída do código a seguir será:
Type of hexadecimalValue : <class 'int'>
Type of hexadecimalValue now : <class 'str'>

Isso é tudo sobre a conversão de String para int em Python e int para string. Referência: Documento Oficial do Python
Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string