Python é dinamicamente tipado, o que significa que os tipos...
Nesse contexto, considere o seguinte trecho de código:
a = 5
b = 5
c = '5'
d = (a + b) + c
Qual é o resultado da variável d?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - erro
O tema desta questão é sobre tipagem dinâmica em Python e as operações entre variáveis de diferentes tipos. O código apresentado tenta realizar uma operação de soma entre variáveis numéricas e uma variável do tipo string, o que em Python resulta em um erro de tipo, especificamente um TypeError.
Para resolver essa questão, é necessário entender que:
- Em Python, variáveis numéricas podem ser somadas entre si sem problemas.
- Quando você tenta concatenar um número com uma string, é necessário realizar uma conversão de tipos explicitamente, ou Python lançará um erro.
No trecho de código apresentado:
a = 5
eb = 5
são ambas variáveis com valores inteiros.c = '5'
é uma variável que armazena uma string.d = (a + b) + c
tenta somar o resultado da soma dea
eb
, que é10
, com a string armazenada emc
.
Como Python não permite a soma direta de um inteiro com uma string, o interpretador gera um TypeError, pois não pode interpretar como somar esses dois tipos diferentes de dados. Por isso, a alternativa correta é a letra E, que indica que ocorrerá um erro ao tentar executar esse código.
Para corrigir o erro e realizar uma operação válida, seria necessário converter explicitamente os números em strings usando a função str()
antes de tentar concatená-los com outra string, ou vice-versa, converter a string em número para somar com o resultado de a + b
.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A e B estão Ok pois como a própria questão informa python é dinamicamente tipado, entretanto python é fortemente tipado, fato que faz com que somar uma string com um inteiro reproduza o erro.
Gabarito: E
TypeError: unsupported operand type(s) for +: 'int' and 'str'
O erro consiste no fato de não ser possível somar um valor INT com um valor STRING. Para somar a variável C seria preciso declara-la como uma var INT
Ao colocar Aspas na declaração da variável, o Python irá entender que a variável é do tipo string.
E por esse motivo da erro, não é possível somar INT com STR
O código fornecido tenta somar os valores das variáveis e , que são ambos inteiros, e então concatenar o resultado com o valor da variável , que é uma string. Isso resultará em um erro, porque você não pode adicionar um número a uma string diretamente em Python.
Se você deseja concatenar o resultado da adição de e com a string contida em , você pode converter o resultado da soma para uma string antes de realizar a concatenação. Aqui está uma possível correção:
Isso resultaria em:
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo