0
votes

Comment se fait-il que mon code ne renvoie que le premier élément de ma liste?

Comment arriver lorsque j'appelle la fonction, je n'obtiens que le premier élément de la liste imprimée, mais lorsque je remplace "retour" pour "Imprimer" à l'intérieur de la fonction, puis appelez-le, je reçois la liste complète?

def show_magicians(magicians):

    for magician in magicians:
        return(magician)

magicians = ["a", "b", "c", "d", "e","f", "g"]
print(show_magicians(magicians))


1 commentaires

retour sombre de la fonction dans la première itération


3 Réponses :


1
votes

La fonction Imprimer () écrit, c'est-à-dire "," Prints ", une chaîne de la console. L'instruction de retour provoque la sortie et la main sur la valeur de son appelant. Le point de fonctionner en général est de prendre des intrants et de renvoyer quelque chose. La déclaration de retour est utilisée lorsqu'une fonction est prête à renvoyer une valeur à son appelant.

Dans la première itération Lorsque le code Atteint retour, il est sorti de fonction, à cause de celui qui compte juste une fois


0 commentaires

1
votes

Vous pouvez atteindre votre objectif en créant une liste vide à l'intérieur de votre fonction et en l'aimant.

Comme: xxx

mais vous retourneriez la liste avec les mêmes valeurs que votre argument.


0 commentaires

1
votes

Vous pouvez essayer cela à la place:

def show_magicians(magicians):

    for magician in magicians:
        yield(magician)

magicians = ["a", "b", "c", "d", "e","f", "g"]
for mag in show_magicians(magicians):
    print(mag, end=' ')


0 commentaires