Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens de programação
Código
ce222023
Banca
CESPE / CEBRASPE
Órgão
UNB
Ano
2025
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
A respeito de APIs, web services e JSON, julgue o item a seguir.Considerando o código em Python precedente, é correto afirmar que sua execução apresentará o resultado a seguir.Nome: MarianaIdade: 21Disciplinas:- Algoritmos- Estruturas de Dados
CCerto
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: iteração sobre dicionário e formatação de saída
Gabarito: letra E (ERRADO). A execução do código Python não produzirá exatamente a saída apresentada, porque a iteração sobre um dicionário percorre apenas as chaves, e não os valores. Para obter o resultado descrito, seria necessário acessar os valores com dicionario[chave] ou usar o método .items(). A saída real seria Nome: Mariana, Idade: 21 e Disciplinas: seguido das chaves Algoritmos e Estruturas de Dados, sem os hífens e sem os valores.
O cerne da questão está em como o Python trata a iteração sobre dicionários. Um dicionário é uma estrutura de dados que armazena pares chave-valor. Quando você escreve um laço for diretamente sobre o dicionário, como for x in dicionario:, a variável x recebe, a cada iteração, uma chave do dicionário, não o valor associado a ela. Esse é um comportamento padrão e intencional da linguagem, que prioriza a eficiência e a clareza quando se deseja percorrer as chaves.
Para acessar os valores, existem algumas abordagens comuns. A primeira é usar o operador de indexação dicionario[chave] dentro do laço. A segunda, mais elegante e idiomática, é usar o método .items(), que retorna uma visão dos pares chave-valor, permitindo desempacotá-los em duas variáveis no próprio for, como for chave, valor in dicionario.items():. Há também os métodos .keys() e .values(), que retornam visões específicas de chaves ou valores, respectivamente.
A saída apresentada no enunciado tem duas discrepâncias claras. Primeiro, ela mostra os valores das disciplinas ("Algoritmos" e "Estruturas de Dados"), mas a iteração simples sobre o dicionário produziria as chaves. Segundo, ela formata cada disciplina com um hífen e um espaço (- Algoritmos), o que exigiria uma manipulação explícita da string, como print(f"- {disciplina}"). Sem esse código adicional, a saída seria apenas os nomes das chaves, um por linha, sem qualquer prefixo.
A pegadinha aqui é sutil e muito comum em provas: o candidato, ao ler o código, pode assumir que a iteração sobre um dicionário percorre os valores, ou pode não perceber que a formatação com hífen não está presente no código. A banca explora exatamente essa confusão entre percorrer chaves e percorrer valores, e entre a saída crua e uma saída formatada. Para resolver corretamente, é preciso simular mentalmente a execução do laço, lembrando que a variável do for assume o papel de chave.
Guarde este critério: em Python, for x in dicionario itera sobre as chaves. É essa regra que separa a saída real da saída proposta, e é nela que a questão se resolve.
1for x in dicionario
2x recebe a CHAVE
3Valor exige dicionario[x]
4ou .items() p/ par chave-valor
LEVEL · soulevel.com.br
Item — ❌ ERRADO
A afirmação de que a execução apresentará o resultado com os valores das disciplinas precedidos por hífen está incorreta. O laço for percorre as chaves do dicionário, não os valores. Para obter a saída descrita, o código precisaria de algo como for disciplina in dados["Disciplinas"]: print(f"- {disciplina}"). Como o código não faz isso, a saída real seria apenas as chaves Algoritmos e Estruturas de Dados, sem os hífens e sem os valores.