Observe o seguinte código escrito em Python.import jsonx = '...
Observe o seguinte código escrito em Python.
import json
x = '{"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 é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - Barco
Vamos analisar o código passo a passo para entender o porquê da alternativa E ser a correta:
Primeiramente, o código realiza a importação do módulo json, que é utilizado para trabalhar com dados no formato JSON (JavaScript Object Notation), o que é bastante comum em diversas aplicações, principalmente em APIs e configurações.
A variável x é uma string que representa um objeto JSON contendo um nome, uma idade e uma lista de brinquedos. O método json.loads() é utilizado para converter essa string em um dicionário Python, atribuindo-o à variável y. Isso permite que acessemos os dados do JSON como um dicionário comum em Python.
A variável z recebe o valor da função len() aplicada ao dicionário y. A função len() retorna o número de chaves no dicionário, que no caso é 3 ('nome', 'idade' e 'brinquedo').
Por fim, o comando print() é utilizado para exibir o elemento da lista associada à chave 'brinquedo' no índice int(z). Aqui é onde muitas pessoas podem se confundir: o índice passado para acessar a lista é o valor de z, que como vimos é 3. No entanto, listas em Python são indexadas a partir de 0, portanto o índice 3 corresponde ao quarto elemento da lista, que é "Barco".
Portanto, a execução do código imprimirá o elemento na posição 3 da lista de brinquedos, que é Barco.
Esse tipo de questão requer conhecimento em manipulação de JSON em Python, compreensão de estruturas de dados como dicionários e listas, e atenção ao detalhe na indexação de listas, que sempre começa em 0.
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 função y = json.loads(x) irá converter a variável x do tipo string para o tipo dicionário.
Isso torna possível eu calcular o tamanho da variável y em parâmetros de dados mencionados no dicionário (eu tenho 1º 'nome', 2º 'idade' e 3º 'brinquedo'.
Note que caso a função json.loads( ) não fosse utilizada, e se eu calculasse o tamanho da variável y, ele me retornaria o número de caracteres da string:
'{"nome":"Junior", "idade":5,"brinquedo":["Carro", "Bola", "Trem", "Barco","Urso"]}' possui 82 caracteres.
Porém, como a variável y agora é do tipo dicionário, o tamanho da variável y é 3, pois eu tenho 3 parâmetros.
Por fim, a função print(y["brinquedo"][int(z)]) pode ser vista como print(y["brinquedo"][3]), e retornará a 4 palavra do dicionário brinquedo, visto que em python a contagem começa de 0.
0 = carro
1 = bola
2 = trem
3 = barco
para mais testes, recomendo utilizar o compilador online https://www.programiz.com/python-programming/online-compiler/ e executar o código
import json
x = '{"nome":"Junior", "idade":5,"brinquedo":["Carro", "Bola", "Trem", "Barco","Urso"]}'
print('tipo variável x = ', type(x))
w = len(x)
print('w =', w)
y = json.loads(x)
print('tipo variável y = ',type(y))
z = len(y)
print('z =', z)
print(y["brinquedo"][int(z)])
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo