Neste tutorial, aprenderemos como converter uma string Python para int e int para string em Python. Em nosso tutorial anterior, aprendemos sobre a função Python List append.
Python String to 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ê estiver lendo alguns dados de um arquivo, eles estarão em formato de string e você terá que converter a string para um int. Agora, vamos direto para o código. Se você quiser converter um número representado na string para int, você tem que usar a função int()
para fazer isso. Veja o exemplo a seguir:
num = '123' # string data
# imprime o tipo
print('Type of num is :', type(num))
# converte usando int()
num = int(num)
# imprime o tipo again
print('Now, type of num is :', type(num))
O resultado do código a seguir será
Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

Convertendo String para int de bases diferentes
Se a string que você deseja converter em um 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 inteiro de saída é 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 inteiro com o argumento da base.
num = '123'
# imprima a string original
print('The original string :', num)
# considerando '123' como sendo na base 10, converta para base 10
print('Base 10 to base 10:', int(num))
# considerando '123' como sendo na base 8, converta para base 10
print('Base 8 to base 10 :', int(num, base=8))
# considerando '123' como sendo na base 6, converta para base 10
print('Base 6 to base 10 :', int(num, base=6))
O resultado do seguinte código será

ValueError ao converter String para int
Enquanto converte de string para int, você pode obter a ValueError
exceção. Essa exceção ocorre se a string que você deseja converter não representa 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 causará uma exceção de 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
O resultado 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))
O resultado 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 e int para string em Python. Referência: Documentação Oficial do Python
Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string