Qual erro ocorre se tentarmos somar um número (int) com um texto (str)? Como corrigir isso?
Passo 1
Você quer saber que erro o Python dá quando a gente tenta somar um inteiro (
int
) com uma string (str
), e como consertar isso. O conteúdo aqui é “tipagem em Python” e “conversão de tipos” – ou seja, entender por que o Python reclama e como usar as funções str()
ou int()
para ajustar os tipos.Passo 2
Antes de mais nada, vamos ver o que acontece com um exemplo simples:
a = 1
b = “2”
c = a + b
Quando o Python chega na linha
a = 1
b = “2”
c = a + b
Quando o Python chega na linha
c = a + b
, ele olha para a
(que é um int
) e b
(que é um str
) e diz “opa, não sei como somar esses dois tipos”. Isso gera um TypeError. A mensagem típica é:TypeError: unsupported operand type(s) for +: 'int' and 'str'
Passo 3
Por que isso ocorre? Em linguagens com tipagem dinâmica como Python, cada valor tem um tipo bem definido. A operação
+
para inteiros faz soma aritmética, mas para strings faz concatenação de texto. Python não faz conversão automática entre esses mundos, então ele reclama.Passo 4
Para corrigir, a gente precisa “alinhar” os tipos de ambos os operandos antes de usar
+
. Tem duas opções principais:- Converter o número (
int
) para texto (str
), se quiser concatenar:
c = str(a) + b - Converter o texto (
str
) para número (int
), se quiser somar valores numéricos:
c = a + int(b)
Resposta
O erro é um TypeError com a mensagem
unsupported operand type(s) for +: 'int' and 'str'
. Para corrigir, converta um dos operandos usando str()
ou int()
, por exemplo str(a) + b
ou a + int(b)
.