FC ConcursosFC Concursos

Questão FC331146

Considerando a linguagem de programação Python, analise os itens I, II e III a seguir. Os códigos foram escritos na versão 3.10.12 I. Após a execução das linhas de código abaixo, o

Linguagens de Programação

FGV · 2024

Considerando a linguagem de programação Python, analise os itens I, II e III a seguir. Os códigos foram escritos na versão 3.10.12

 

I. Após a execução das linhas de código abaixo, o valor atribuído a y será zero.

 

<1>  x = (x : x ** 2 for x in range (10) if x%2}

 

<2> y = x . pop (0)

 

II. Considerando as linhas de código abaixo, pode-se afirmar que a atribuição na linha <7> não será executada.

 

<1> x = 1

 

<2> while x < 100;

 

<3> x = x + 1

 

<4> if not x // 3:

 

<5> break

 

<6> else:

 

<7> y = x

 

III. Considere o código abaixo.

 

<1> def f(n)

 

<2> if n==1:

 

<3> return 1

 

<4> else:

 

<5> return f(n-1) *n

 

A expressão f(5) retorna 120. Está correto o que se afirma em

  1. I, apenas.
  2. II, apenas.
  3. I e II, apenas.
  4. II e III, apenas.
  5. I, II e III.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

No trecho II, a estrutura executa: x inicia em 1; na primeira iteração faz-se x = x + 1 → x = 2. A expressão not x//3 é avaliada como not (2//3) = not 0 → True, portanto o comando break é acionado imediatamente. Como o else está associado ao if (e não ao laço), a atribuição de y em linha <7> não é alcançada em nenhum momento; logo, aquela atribuição não será executada.

No trecho III, a função é a definição clássica do fatorial por recursividade com caso base n==1 retornando 1 e regra recursiva f(n)=f(n-1)*n. Assim f(5)=5·4·3·2·1, isto é \(5! = 120\), confirmando o resultado.

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

Continue aprendendo