FC ConcursosFC Concursos

Questão FC373127

Considere o bloco de código Python abaixo. def calcula(n): return lambda a : a * n x = calcula(4) print(x(11)) Ao executar esse bloco de código em condições ideais,

Linguagens de Programação para Ciência de Dados

FCC · 2022

Considere o bloco de código Python abaixo.

 

def calcula(n):

  return lambda a : a * n

x = calcula(4)

print(x(11))

 

Ao executar esse bloco de código em condições ideais,

  1. ocorrerá um erro de sintaxe na segunda linha do código.
  2. será exibido o valor 44.
  3. ocorrerá uma exceção do tipo InvalidMethodException na última linha do código.
  4. será exibido o valor 16.
  5. será exibido o valor 27.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A função calcula recebe um parâmetro n e retorna uma função anônima (lambda) definida como lambda a: a * n — ou seja, uma função que multiplica seu parâmetro a pelo valor de n.

Ao fazer x = calcula(4), cria-se uma função em que o valor de n foi fixado como 4. Essa função retornada mantém o acesso ao valor de n mesmo após a execução de calcula (comportamento de closure).

Quando chamamos x(11) estamos passando a = 11 para a lambda, que calcula o produto \(11 \times 4\).

O comando print(x(11)) exibe, portanto, o resultado 44.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo