Questão nº 46

Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 46)

FGV2024Técnico Legislativo - Suporte e ManutençãoTecnologia da Informação
Gabarito: Dver comentário ↓

Considere o seguinte trecho de código em Python:

```
def contar_ocorrencias(frase, letra):
return frase.count(letra)
mensagens = {
'msg1': 'Python é uma linguagem de programação.',
'msg2': 'Aprender Python é divertido!',
'msg3': 'Python é utilizado em desenvolvimento web.'
}
letra_cont = 'a'
for chave, valor in mensagens.items():
qtd = contar_ocorrencias(valor, letra_cont)
print(f"{chave}: A letra '{letra_cont}' aparece {qtd} vezes.")
```

Ao final da execução desse código, o resultado exibido no console é:

msg1: A letra 'a' aparece 4 vezes.
msg2: A letra 'a' aparece 0 vezes.
msg3: A letra 'a' aparece 1 vezes.

O código ainda funcionará corretamente se o trecho definido como ‘qtd = contar_ocorrencias(valor, letra_cont)’ for substituído por:

Resposta comentada

Gabarito Alternativa D

O conceito-chave é que o método .count() conta ocorrências de uma substring dentro de uma string, e a ordem importa: string.count(substring). Para contar letras específicas, você pode usar .count() diretamente ou uma list comprehension que filtra cada caractere.

  • (A) Incorreta: chave.count(valor) tenta contar a mensagem inteira dentro da chave (ex.: 'msg1'), o que sempre retorna 0, pois a chave é curta e não contém a frase.
  • (B) Incorreta: chave.count(letra_cont) conta a letra 'a' na chave (ex.: 'msg1'), que não tem 'a', resultando sempre em 0 — ignora o conteúdo real da mensagem.
  • (C) Incorreta: valor.count(chave) tenta contar a string 'msg1' dentro da mensagem, o que não existe, retornando 0 — inverte os argumentos de forma errada.
  • (D) Correta: len([letra for letra in valor if letra == letra_cont]) cria uma lista com cada caractere da mensagem que é igual a 'a' e conta quantos são — equivalente a valor.count('a'), mas manualmente.
  • (E) Incorreta: sum(1 for letra in chave if letra == letra_cont) itera sobre a chave ('msg1'), não sobre a mensagem, então conta 'a' na chave (0 vezes) — mesma armadilha da (B), mas com sum.

Armadilha da banca (distrator mais tentador): A alternativa (B) parece plausível porque usa letra_cont corretamente, mas o erro está em aplicar .count() na chave (chave) em vez de no valor (valor). A banca testa se você entende que a variável chave é só o rótulo ('msg1') e o conteúdo está em valor.

Fonte: FGV ALEP 2024 Técnico Legislativo - Suporte e Manutenção (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho