web-dev-qa-db-fra.com

si passer et si continuer dans python

J'ai vu quelqu'un poster la réponse suivante pour faire la différence entre si passer et si continuer. Je sais que la liste "a" est [0,1,2], je ne sais simplement pas quel est le résultat pour "sinon un élément"? Pourquoi lors de l'utilisation de continuer, le 0 n'est pas imprimé, seuls 1 et 2 sont imprimés? quand a = 0, "sinon élément" est "sinon 0", a-t-il une signification particulière?

>>> a = [0, 1, 2]
>>> for element in a:
...     if not element:
...         pass
...     print element
... 
0
1
2
>>> for element in a:
...     if not element:
...         continue
...     print element
... 
1
2
15
Shelly

'0' non imprimé à cause de la condition "sinon élément:"

Si l'élément est None, False, chaîne vide ('') ou 0, la boucle continuera avec l'itération suivante.

10
Anoop

L'utilisation de continue passe pour la prochaine itération du for loop
L'utilisation de pass ne fait rien
Ainsi, lorsque vous utilisez continue la print ne se produira pas (car le code a continué jusqu'à la prochaine itération)
Et lorsque vous utilisez pass cela terminera simplement la if paisiblement (sans rien faire en fait) et fera également la print

7
Neo

De: https://docs.python.org/2/tutorial/controlflow.html#pass-statements

L'instruction pass ne fait rien. Il peut être utilisé lorsqu'une instruction est requise syntaxiquement mais que le programme ne nécessite aucune action.

Dans votre extrait de code ci-dessus if not element sera évalué à true lorsque element = 0. Dans python 0 est identique à booléen false. Dans la première boucle, pass ne fait rien, donc il imprime les trois éléments. Dans la deuxième boucle, continue arrêtera l'exécution du reste de la boucle pour cette itération. de sorte que l'instruction print ne s'exécute jamais. il imprime donc seulement 1 et 2.

4
WreckeR
if not element:

Dans les deux exemples, cela ne correspondra qu'au 0.

pass

Cela fait rien. Ainsi, la commande suivante, print element, sera exécuté.

continue

Cela indique Python pour arrêter cela pour le cycle de boucle et passer au cycle suivant de la boucle. Donc print element ne sera jamais atteint. Au lieu de cela, la boucle for prendra la valeur suivante, 1 et commencez par le haut.

3
C14L

continue est une instruction de flux de contrôle utilisée pour échapper au corps d'itération le plus interne. Lorsque votre code frappe

if not element

l'interpréteur ignore toutes les valeurs de l'élément qui ne valident pas pour true. 0 est une de ces valeurs et il passe à l'itération suivante de la boucle lorsqu'il ne rencontre pas l'instruction continue et continue donc à imprimer la valeur de l'élément 1 et ensuite 2

En revanche, l'instruction pass ne fait que sauter et retourner à la ligne de code suivante pour s'exécuter.

1
Spade

Il existe une différence fondamentale entre pass et continue en Python. pass ne fait simplement rien, tandis que continue passe à l'itération suivante de la boucle for. La déclaration if not 0 est toujours évalué en True, donc les instructions pass et continue seront exécutées. pass ne fera rien et affichera la valeur, tandis que continue passera à l'itération suivante en ignorant l'instruction print écrite ci-dessous.

0
Vedang Mehta