Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg077021
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
Observe o seguinte código escrito em Python.import jsonx = '{"nome":"Junior", "idade":5,"brinquedo":["Carro", "Bola", "Trem", "Barco","Urso"]}';y = json.loads(x)z = len(y)print(y["brinquedo"][int(z)])O resultado da execução do código Python apresentado é:
  1. ABola
  2. BTrem
  3. CUrso
  4. DCarro
  5. EBarco
Revelar gabarito e comentário

GabaritoE — Barco

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”.

Análise de código Python: json.loads e indexação

Gabarito: letra E (Barco). O código carrega um JSON em um dicionário, conta suas chaves com len(y) (resultando em 3) e acessa o índice 3 da lista brinquedo, que é o quarto elemento ("Barco").

Passo a passo

  1. x = '{"nome":"Junior", "idade":5, "brinquedo":["Carro", "Bola", "Trem", "Barco", "Urso"]}'

    Uma string JSON que representa um objeto com três chaves: nome, idade, brinquedo. O valor de brinquedo é uma lista de 5 strings.

  1. y = json.loads(x)

    Converte a string JSON em um dicionário Python. As chaves são "nome", "idade", "brinquedo".

  1. z = len(y)

    len() aplicado a um dicionário retorna o número de chaves. Como há 3 chaves, z = 3.

  1. print(y["brinquedo"][int(z)])

    Acessa y["brinquedo"], que é a lista ["Carro", "Bola", "Trem", "Barco", "Urso"].

    Depois, [int(z)] acessa o índice 3 (o quarto elemento da lista, já que a indexação começa em 0).

    Portanto, lista[3] = "Barco".

  1. 1String JSON com 3 chaves
  2. 2json.loads() → dicionário
  3. 3len(y) = 3 (chaves)
  4. 4y['brinquedo'][3] = 'Barco'
LEVEL · soulevel.com.br

Análise das alternativas

Alternativa A — ❌ Incorreta

Bola corresponde ao índice 1, não ao índice 3.

Alternativa B — ❌ Incorreta

Trem corresponde ao índice 2.

Alternativa C — ❌ Incorreta

Urso corresponde ao índice 4 (último elemento), não ao índice 3.

Alternativa D — ❌ Incorreta

Carro corresponde ao índice 0.

Alternativa E — ✅ Correta ⟵ GABARITO

Barco é o elemento no índice 3, exatamente o que o código imprime.

NÃO CAIA NESSA!

A armadilha está em len(y). Muitos candidatos podem pensar que len(y) conta os elementos da lista brinquedo (que são 5), mas na verdade len() aplicado a um dicionário conta o número de chaves (3). Com isso, o índice acessado é 3, e não 5 (que estouraria o índice) nem outro valor. O código usa int(z), mas z já é inteiro; a conversão é redundante.

PEGA ESSA DICA!

Em Python, sempre que você vir len() em um dicionário, lembre-se: conta chaves, não valores. Para saber o comprimento de uma lista aninhada, você precisa acessar a lista primeiro: len(y["brinquedo"]).

Gabarito: letra E

Link permanente: /questoes/fg077021