0
votes

Quelle est la raison derrière Args () ne renvoyant qu'une seule valeur lorsque la méthode de retour () est utilisée?

Le code que j'utilise est ci-dessous:

def myfunc (* args): Pour i in (args): Si je% 2 == 0: Retour I P>

myfunc(1,2,3,4,5,6)


2 commentaires

Une fonction arrête l'exécution du moment où il voit un retour. C'est à quel point le retour fonctionne. Vous devez d'abord "collecter" toutes les valeurs même, puis renvoyer le résultat.


Comment puis je faire ça? Pouvez-vous me donner un exemple de code?


4 Réponses :


0
votes

Comme suggéré en commentaire, vous ne pouvez pas retourner plus d'une valeur. Donc, vous pouvez ajouter tout votre valeur à une liste et utilisez cela.

def myfunc(*args):
   for i in (args):
       if i % 2 == 0:
           yield i


something = myfunc(1,2,3,4,5,6)


1 commentaires

La solution de rendement ne produira qu'un objet de générateur dans python-2 . Besoin d'ajouter Liste (myfunc (1,2,3,4,5,6)) .



0
votes

Vous retournez la 1ère valeur qui répond au si condition code>. Vous devez stocker toutes les valeurs de la liste code> code> revenir après pour la boucle code> est terminée. xxx pré>

sortie: p>

[2,4,6]


1 commentaires

Merci beaucoup.



0
votes

pourquoi pour args () ne renvoyant qu'une seule valeur lors de l'utilisation de retour ()? P>

- args ne renvoie rien. Vous venez de passer votre contribution à la fonction à travers cela. - Vous utilisez également un retour dans votre boucle pour la boucle, ce qui entraîne la retouche à l'abandon de la boucle. P>

Essayez le code ci-dessous: P>

[2, 4, 6]

0 commentaires

0
votes

Votre fonction s'arrête alors que la première expression est exécutée. Une alternative est la suivante: xxx


0 commentaires