Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025

ProgramaçãoLinguagens de programação
Código
ce194807
Banca
CESPE / CEBRASPE
Órgão
ANM
Ano
2025
Nível
Superior
Cargo
Especialista em Recursos Minerais - Especialidade: Geologia, Geografia, Geofísica, Engenharia de Minas, Agrônoma, Florestal, Civil, Ambiental, Arquitetura ou Tecnologia da Informação
Imagem da questão
Considerando o script Python que precedente, julgue o próximo item.O comando print(f”O dobro do número digitado é: {numero_convertido * 2}”) pode ser reescrito como print(“O dobro do número digitado é: “ + numero_convertido * 2), sem causar erro.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Python: concatenação de strings e f-strings

Gabarito: letra E (ERRADO). A reescrita proposta causaria erro, pois o operador + em Python não pode concatenar uma string com um número (float). A f-string original converte automaticamente o valor numérico para string, enquanto a concatenação com + exige que ambos os operandos sejam strings. Essa é a distinção central que a questão explora.

O código apresentado utiliza uma f-string (formatação de string) para exibir o dobro de um número digitado pelo usuário. F-strings, introduzidas no Python 3.6, permitem embutir expressões diretamente dentro de chaves {} em uma string, e o Python converte automaticamente o resultado da expressão para string. No comando original, {numero_convertido * 2} é avaliado como um número (float) e, em seguida, convertido para string pelo mecanismo da f-string, permitindo a exibição correta.

A reescrita proposta usa o operador + para concatenar uma string literal com o resultado da expressão numero_convertido * 2. Em Python, o operador + entre uma string e um número não é suportado — ele tenta somar os valores, mas como os tipos são diferentes (str e float), o interpretador lança um TypeError. Para que a concatenação funcionasse, seria necessário converter explicitamente o número para string usando a função str(), como em print("O dobro do número digitado é: " + str(numero_convertido * 2)).

A pegadinha da banca está em explorar a diferença entre a conversão automática de tipos nas f-strings e a exigência de tipos compatíveis na concatenação com +. O candidato que conhece apenas a sintaxe básica pode não perceber que a reescrita introduz um erro de tipo. É importante lembrar que, em Python, a concatenação de strings com + exige que todos os operandos sejam strings, enquanto as f-strings convertem automaticamente qualquer expressão para string.

Concatenação em Python
  • 1f-string
    • Converte número para string automaticamente
    • Funciona com qualquer expressão
  • 2Operador +
    • Erro se um operando for número (TypeError)
    • Exige conversão explícita com str()
LEVEL · soulevel.com.br

Alternativa E — ❌ Incorreta (gabarito)

A afirmação de que a reescrita pode ser feita sem causar erro é falsa. O comando print("O dobro do número digitado é: " + numero_convertido * 2) tentará concatenar uma string com um número, resultando em TypeError: can only concatenate str (not "float") to str. A f-string original, por outro lado, converte automaticamente o valor numérico para string, funcionando corretamente. Portanto, a reescrita proposta não é equivalente e causaria erro de execução.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/ce194807