206 votes

Comment puis-je retrouver deux valeurs d’une fonction en Python ?

Je voudrais retourner deux valeurs d’une fonction à deux variables distinctes. Par exemple :

Et je veux être en mesure d’utiliser ces valeurs séparément. Quand j’ai essayé d’utiliser , il retourne un et ce n'est pas ce que je veux.

415voto

warvariuc Points 11787

Retourne un tuple/liste (ou toute autre séquence, par exemple `` ) et décompresser après l’appel :

29voto

Karl Knechtel Points 24349

Je voudrais revenir deux valeurs à partir d'une fonction de deux variables distinctes.

Qu'attendez-vous pour qu'il ressemble à l'appel de la fin? Vous ne pouvez pas écrire a = select_choice(); b = select_choice() parce que ce serait appeler la fonction à deux fois.

Les valeurs ne sont pas retournés "dans les variables"; ce n'est pas la façon Python fonctionne. Une fonction renvoie des valeurs (des objets). Une variable est seulement le nom d'une valeur dans un contexte donné. Lorsque vous appelez une fonction et affecter la valeur de retour quelque part, ce que vous faites est de donner la valeur reçue un nom dans le contexte de l'appel. La fonction ne pas mettre la valeur "dans une variable" pour vous, la cession ne porte jamais de l'esprit que la variable n'est pas de "stockage" pour la valeur, mais encore une fois, juste un nom).

Quand j'ai essayé d'utiliser return i, card, elle renvoie un tuple et ce n'est pas ce que je veux.

En fait, c'est exactement ce que vous voulez. Tout ce que vous avez à faire est de prendre l' tuple part de nouveau.

Et je veux être en mesure d'utiliser ces valeurs séparément.

Donc, il suffit de saisir les valeurs de l' tuple.

La façon la plus simple de le faire est par le déballage:

a, b = select_choice()

17voto

heinrich5991 Points 765

Je pense que vous ce que vous voulez est un n-uplet. Si vous utilisez `` , vous pouvez obtenir ces deux résultats :

8voto

Amin Points 48
<pre><code></code><p>maintenant vous pouvez faire tout ce que vous aimez avec vos tuple.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X