Différence entre “x” et “si x n'est pas Rien”
Il semble que "si x" est presque comme à court de main pour la plus "si x n'est pas Rien" de la syntaxe. Ils sont fonctionnellement identiques ou il y a des cas où, pour une valeur donnée de x les deux permettrait d'évaluer différemment?
Je suppose que le comportement doit également être identique à travers les implémentations de Python, mais si il y a de subtiles différences, il serait bon de savoir.
Vous devez vous connecter pour publier un commentaire.
Dans les cas suivants:
la
if
test diffèrent:C'est le cas parce que
is
tests pour l'identité, du sensest équivalent à
donc
__bool__
ou__nonzero__
retourner false.Les anciens tests de justesse, alors que les derniers tests d'identité avec
None
. Beaucoup de valeurs sont fausses, commeFalse
,0
,''
, etNone
, mais seulementNone
estNone
.Aucun n'est de son propre type, qui se trouve être Fausse. "si pas de x" évalue si x = None, uniquement parce qu'Aucun n'est Faux.
Il n'y a pas des différences subtiles, que je sache, mais il existe des méthodes exactes pour un test de positivité/négativité exacte des situations. Le mélange peut fonctionner dans certaines situations, mais peut causer des problèmes si ils ne sont pas compris.
tout en python a une valeur booléenne.
les valeurs True, False, Aucun
tout ce qui est Vrai ou Faux
0 est Faux
[], (), {}, " sont Faux (tout est vide)
[False] ,('bonjour'), 'bonjour' , etc. sont Vraies ('cause ne sont pas vides)
Seulement Aucun n'en est pas..
enfin, notez que le Vrai et le Faux sont "spéciales" version de 1 et de 0...
par exemple