Analise o código Python 2.7 a seguir.def f(x): for a in x[:...

Próximas questões
Com base no mesmo assunto
Q914393 Programação

Analise o código Python 2.7 a seguir.


def f(x):

for a in x[::-1]:

yield a

L1=[]

L2=[1,2,3,4]

for k in f(L2):

L1.append(k)

for x in L1:

print x


Esse programa causa

Alternativas

Comentários

Veja os comentários dos nossos alunos

O enunciado está transcrito corretamente (sem indentação). Lembrem-se de que a indentação é uma característica importante no Python.

Reformulando a questão para fins de aprendizado.

----------------------------------------------------

Analise o código Python 3 a seguir.

def f(x):

>>for a in x[::-1]:

 >>>>yield a

L1 = [ ]

L2 = [1, 2, 3, 4]

for k in f(L2):

>>L1.append(k)

for x in L1:

>>print(x)

----------------------------------------------------

Nesse caso, a alternativa correta seria: "esse programa causa a exibição dos valores 4,3,2,1, nessa ordem" (A).

def f(x):

>>for a in x[::-1]:

 >>>>yield a

Define a função f(x), que inverte os elementos de uma lista x. O yield funciona mais ou menos como um return, mas mantém salvo o contexto da função.

for k in f(L2):

>>L1.append(k)

Armazena cada k de f(L2) numa lista vazia L1. Ou seja,

antes L1 = [ ]

depois L1 = [4, 3, 2, 1]

for x in L1:

>>print(x)

Esse último passo exibe no shell a sequência:

>4

>3

>2

>1

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo