def myfunc (* args): Pour i in (args): Si je% 2 == 0: Retour I P>
myfunc(1,2,3,4,5,6)
4 Réponses :
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)
La solution code> de rendement code> ne produira qu'un objet de générateur dans python-2 code>. Besoin d'ajouter
Liste (myfunc (1,2,3,4,5,6)) code>.
Vous retournez la 1ère valeur qui répond au sortie: p> si condition code>. Vous devez stocker toutes les valeurs de la liste code> code> revenir après
pour la boucle code> est terminée.
[2,4,6]
Merci beaucoup.
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]
Votre fonction s'arrête alors que la première code> expression code> est exécutée. Une alternative est la suivante:
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?