Questão de Programação — Python — VUNESP 2023
- Código
- vu078917
- Banca
- VUNESP
- Órgão
- TCM-SP
- Ano
- 2023
- Nível
- Superior
- Cargo
- Auditor de Controle Externo - Especialidade: Tecnologia da Informação
- A18
- B21
- C22
- D40
- E42
GabaritoC — 22
Gabarito: letra C (22). O código constrói um dicionário com chaves i+1 para i em range(10) quando i é múltiplo de 3. A função sum(x) itera sobre as chaves do dicionário e as soma. Calculando as chaves: 1, 4, 7, 10 → soma = 22.
A expressão {i+1: i for i in range(10) if i % 3 == 0} é uma dictionary comprehension – equivalente ao seguinte laço:
x = {}
for i in range(10):
if i % 3 == 0:
x[i+1] = irange(10) gera os números 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
O filtro if i % 3 == 0 seleciona apenas os múltiplos de 3: 0, 3, 6, 9.
Para cada i selecionado, a chave é i+1 e o valor é i.
i | chave (i+1) | valor (i) |
|---|---|---|
0 | 1 | 0 |
3 | 4 | 3 |
6 | 7 | 6 |
9 | 10 | 9 |
Portanto, x = {1: 0, 4: 3, 7: 6, 10: 9}.
sum(x)Em Python, quando usado sobre um dicionário, sum() (assim como for ou list()) itera sobre as chaves do dicionário, a menos que explicitamente se use .values() ou .items(). Logo, sum(x) equivale a sum(x.keys()), ou seja, 1 + 4 + 7 + 10 = 22.
A função sum() em dicionários sempre soma as chaves (padrão de iteração). Para somar os valores, use sum(x.values()).
Gabarito: letra C.
Link permanente: /questoes/vu078917