Pular para o conteúdo principal

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

ProgramaçãoPython
Código
fg070751
Banca
FGV
Órgão
SMPOG de Belo Horizonte - MG
Ano
2023
Nível
Superior
Cargo
Analista de Planejamento e Gestão Governamental: Ciência da Computação
Analise o código Python a seguir.def calcula(n):return lambda x : x * nfcalcula = calcula(3)print(fcalcula(7))Assinale o valor exibido pela execução desse código.
  1. A3
  2. B7
  3. C21
  4. Dundefined
Revelar gabarito e comentário

GabaritoC — 21

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

Funções lambda e closures em Python

Gabarito: letra C. O código define a função calcula(n) que retorna uma expressão lambda x : x * n. Ao chamar calcula(3), o parâmetro n é fixado em 3, criando uma closure que multiplica seu argumento por 3. A variável fcalcula recebe essa função lambda, e ao executar fcalcula(7), o resultado é 7 * 3 = 21.

  1. 1calcula(3) fixa n=3
  2. 2Retorna lambda x: x*3
  3. 3fcalcula = lambda
  4. 4fcalcula(7) = 7*3
  5. 5Saída: 21
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O valor 3 corresponde ao parâmetro n passado para calcula, mas não é o valor retornado pela função fcalcula. A saída do programa é o resultado da multiplicação.

Alternativa B — ❌ Incorreta

O valor 7 é o argumento passado para fcalcula, ou seja, o valor de x na lambda. No entanto, o resultado final é o produto de x por n, não apenas x.

Alternativa C — ✅ Correta ⟵ GABARITO

Conforme explicado, fcalcula(7) equivale a (lambda x: x * 3)(7), que resulta em 21. Esse é o valor impresso pelo print.

Alternativa D — ❌ Incorreta

Python não possui o valor undefined; variáveis não definidas geram NameError. O código apresentado é válido e não lança exceção, portanto a saída não é undefined.

Gabarito: letra C.

Link permanente: /questoes/fg070751