Der Rückgabewert der Python-Booleschen Operation ist nicht immer vom Bool-Typ

Es ist nicht nur der Bool-Typ, der Boolesche Operationen in Python ausführen kann, und der Rückgabewert ist nicht unbedingt der Bool-Typ.

So überprüfen Sie den Wahrheitswert eines Objekts bool ():


>>> bool(123)
True
>>> bool([1,2,3])
True
>>> bool('abc')
True
>>> bool({'a':1, 'b':2, 'c':3})
True
>>> bool((1,2,3))
True

>>> bool(0)
False
>>> bool([])
False
>>> bool('')
False
>>> bool({})
False
>>> bool(())
False
>>> bool(None)
False

and Gibt das rechte Objekt zurück, wenn der Wahrheitswert des linken Objekts wahr ist:


>>> True and True
True
>>> [1,2,3] and 'abc'
'abc'
>>> 'abc' and [1,2,3]
[1, 2, 3]

>>> True and False
False
>>> [1,2,3] and ''
''
>>> 'abc' and []
[]

Gibt das linke Objekt zurück, wenn der Wahrheitswert des linken Objekts falsch ist:


>>> False and True
False
>>> [] and 'abc'
[]
>>> '' and [1,2,3]
''

>>> False and False
False
>>> [] and ''
[]
>>> '' and []
''

or

Gibt das linke Objekt zurück, wenn der Wahrheitswert des linken Objekts wahr ist:

>>> True or True
True
>>> [1,2,3] or 'abc'
[1, 2, 3]
>>> 'abc' or [1,2,3]
'abc'

>>> True or False
True
>>> [1,2,3] or ''
[1, 2, 3]
>>> 'abc' or []
'abc'

Gibt das rechte Objekt zurück, wenn der Wahrheitswert des linken Objekts falsch ist:

>>> False or True
True
>>> [] or 'abc'
'abc'
>>> '' or [1,2,3]
[1, 2, 3]

>>> False or False
False
>>> [] or ''
''
>>> '' or []
[]

not Gibt nur den Bool-Typ zurück. Falsch: Wenn der Wahrheitswert des Objekts wahr ist


>>> not True
False
>>> not [1,2,3]
False
>>> not 'abc'
False

Richtig, wenn der Wahrheitswert des Objekts falsch ist:


>>> not False
True
>>> not []
True
>>> not ''
True

Recommended Posts

Der Rückgabewert der Python-Booleschen Operation ist nicht immer vom Bool-Typ
Die boolesche Python-Operation gibt keinen booleschen Wert zurück
[Python] Der Boolesche Operator (oder / und) gibt keinen Booleschen Wert zurück
Python-Memo mit Perl - Wörterbuchtyp (Groß- / Kleinschreibung ungültig)
Python-Runde ist nicht streng rund
Pypy Bool Typ ist langsam
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
[Python] Woche 1-3: Nummerntyp und Operation
Python Hinweis: Wenn easy_install nicht verwendet werden kann
[Python] Namensfehler: name'urlparse 'ist nicht definiert
[Python] [Meta] Ist der Python-Typ ein Typ?
[Python] Bool-Wertinversion in einer Zeile
Konvertierung von String → Bool-Wert in Python Consideration