Identifique o erro ou comportamento dos códigos abaixo com base nas regras do Python.
1_lugar = “João”
print(1_lugar)
Qual é o erro neste código acima?
numero = input("Digite um número: ")
resultado = numero +5
print(resultado)
Qual será o problema ao executar a linha do cálculo?

Passo 1

Vou listar claramente o que o enunciado nos dá e o que ele pergunta para cada trecho de código.
  • Primeiro trecho:
    • Código exibido: 1\_lugar = "João"ã seguido de \text{print}(1\_lugar).
    • Pergunta: “Qual é o erro neste código acima?”
    • Informação relevante: há uma atribuição a um nome de variável que começa com o dígito 1.
  • Segundo trecho:
    • Código exibido (como foi escrito): \text{numero} = \text{input}("Digite um número: ")ú e depois \text{resultado } \$=\$ \text{ numero } +5 e \text{print(resultado)}.
    • Pergunta: “Qual será o problema ao executar a linha do cálculo?”
    • Informação relevante: a chamada \text{input}(\ldots) lê algo do usuário; o código mostra um operador de soma com 5. Observação: o enunciado usou o símbolo \$\=\$ na atribuição; não está claro se isso é só para formatar a questão ou está literalmente no código.

Passo 2

Sobre nomes de variáveis (identificadores) em Python — o fundamento que explica o erro do primeiro trecho.
  • Regra principal: um identificador em Python deve começar por uma letra (a–z, A–Z) ou por sublinhado \_. Depois do primeiro carácter pode usar letras, dígitos e sublinhados.
  • Coisas proibidas: começar com dígito, conter espaços, usar símbolos como \$ (fora de strings) ou ser uma palavra reservada.
  • Exemplos bons: lugar1, \_1\_lugar, primeiro\_lugar.
  • Exemplos inválidos: 1lugar (começa com dígito), meu lugar (contém espaço), for (palavra reservada).
Aplicando ao caso: o nome 1\_lugar começa com o dígito 1, portanto viola a regra. Quando o Python tenta interpretar a linha \,1\_lugar = "João"\,ã ele não reconhece isso como um identificador válido e gera um erro de sintaxe (um SyntaxError) antes mesmo do programa rodar.

Passo 3

Como corrigir o primeiro trecho (exemplos práticos e explicação para a prova).
  • Trocar o nome inválido por um nome válido. Exemplos:
    • lugar1 = "João"ã
    • primeiro\_lugar = "João"ã
    • \_1\_lugar = "João"ã (começa com sublinhado — válido)
  • Código corrigido mínimo:
    • primeiro\_lugar = "João"ã
    • \text{print}(primeiro\_lugar)
  • Dica prática na prova: se você vê um identificador começando por número, já marque como erro de sintaxe — não é um runtime error, é erro na análise léxica/sintática.

Passo 4

Agora o segundo trecho: o que a função \text{input} devolve e por que isso causa problema na linha do cálculo.
  • Comportamento de \text{input}(\ldots): ela sempre retorna uma string. Exemplo: se o usuário digitar 2, o valor de \text{numero} será a string "2" — não o número 2.
  • Operador + em Python:
    • Se os operandos forem números (int/float), + faz soma aritmética.
    • Se ambos forem strings, + faz concatenação (ex.: "2" + "5" -> "25").
    • Se um for string e outro for inteiro/float, Python não sabe combinar os tipos e lança um erro do tipo TypeError.
  • Portanto, supondo que a linha de atribuição foi realmente \text{resultado} = \text{numero} + 5 (sem os \$), aí está o problema: \text{numero} é uma string e 5 é inteiro, logo a expressão tenta somar str + int e o Python lança:
    • TypeError: can only concatenate str (not “int”) to str
  • Nota sobre o símbolo \$\=\$: se o código literal contiver o carácter \$, isso também seria um erro de sintaxe porque \$ não é parte da sintaxe Python. Então há duas possibilidades a verificar:
    • Se \$ faz parte do enunciado só para mostrar “igual”, ignore; o erro real é o TypeError explicado acima.
    • Se \$ está mesmo no arquivo .py, o erro será SyntaxError porque \$ é inválido.

Passo 5

Como consertar o segundo trecho — passo a passo e explicação para a prova (sem pular etapas).
  • Solução direta quando se espera um inteiro do usuário:
    • Ler e converter: \text{numero} = \text{int}(\text{input}("Digite um número: "))ú
    • Somar: \text{resultado} = \text{numero} + 5
    • Mostrar: \text{print}(resultado)
    • Explicação: \text{int}(\ldots) transforma a string lida em um inteiro; aí o operador + faz soma numérica.
  • Se valores decimais são possíveis, usar \text{float}(\ldots) em vez de \text{int}(\ldots).
  • Atenção a entradas inválidas: se o usuário digitar algo que não é número, \text{int}(\ldots) gera um \text{ValueError}. Na prova, se pedirem robustez, pode-se mostrar o uso de \text{try/except} para capturar \text{ValueError} e tratar a entrada.
  • Exemplo completo corrigido e seguro:
    • \text{try:}
    • \quad \text{numero} = \text{int}(\text{input}("Digite um número: "))ú
    • \quad \text{resultado} = \text{numero} + 5
    • \quad \text{print}(resultado)
    • \text{except ValueError:}
    • \quad \text{print}("Entrada inválida: por favor digite um número inteiro.")áú

Passo 6

Resumo rápido e dicas de prova (memorização fácil):
  • Identificadores não podem começar por dígito. Se ver 1\_alguma\_coisa, responda “erro de sintaxe: identificador inválido”.
  • \text{input}(\ldots) retorna string. Sempre converta para \text{int} ou \text{float} antes de fazer operações numéricas.
  • Se encontrar símbolos estranhos como \$ no código fonte, marque como erro de sintaxe — caracteres não permitidos.
  • Mensagem de erro típica para str + int: TypeError explicando que não se pode concatenar str com int.

Resposta

Erro de sintaxe (SyntaxError): identificador inválido — nomes não podem começar com dígito (portanto 1\_lugar é inválido).
Ao executar a linha de cálculo (supondo que seja \text{resultado} = \text{numero} + 5): ocorre um TypeError porque \text{input}() devolve uma string e não se pode somar str com int; solução: converter com \text{int}(\text{input}(...)) ou \text{float}(\ldots).

Exercícios relacionados