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
- I, apenas.
- II, apenas.
- I e II, apenas.
- II e III, apenas.
- 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