有時候我想檢查表達式的邏輯值,所以我在Python(或IPython中)型,並得到結果:如何檢查交互式shell中表達式的邏輯值?
>>> a==3
True
但在其他情況下,它不會按照這種方式(這裏串是無):
>>> string
>>>
所以我檢查這樣的邏輯值:
>>> if string: print('True')
...
>>>
是否有用於檢查表達式的邏輯值更短的方法是什麼? 任何函數返回真或假將以相同方式評估if -condition?
有時候我想檢查表達式的邏輯值,所以我在Python(或IPython中)型,並得到結果:如何檢查交互式shell中表達式的邏輯值?
>>> a==3
True
但在其他情況下,它不會按照這種方式(這裏串是無):
>>> string
>>>
所以我檢查這樣的邏輯值:
>>> if string: print('True')
...
>>>
是否有用於檢查表達式的邏輯值更短的方法是什麼? 任何函數返回真或假將以相同方式評估if -condition?
所有表達式除了那些產生None
的回聲。
如果您執行的表達式不會導致數據被回顯,那麼您可能有None
結果。您可以測試None
明確:
>>> string = None
>>> string is None
True
使用is None
產生非None
結果。
如果你只是想測試一個表達式的布爾值,使用bool()
function;它會按照標準truth value testing rules返回結果:
>>> string = None
>>> bool(string)
False
再次,這是保證不None
和呼應。但是,您無法通過這種方式區分None
和其他false-y值。例如,空字符串''
也將導致False
。
另一種方法是明確地打印所有表達結果,使用repr()
function:
>>> print(repr(string))
None
這然後產生完全相同的輸出作爲呼應確實,跟單異常None
被印刷過。
是,直接從表達,這將永遠是True
或False
創建布爾你需要的布爾值。
>>> string = None
>>> string is None
>>> True
你可以用'string不是None'來測試None,它返回你的例子中的False – GPhilo
我知道。我想檢查,如果* string *在if條件中返回* True *或* False *。但是如果我輸入* string *(下一行),我只是沒有結果。 – MaxGyver
我已經從代碼塊中刪除了字符串的分配,所以現在它更清楚我的意思。 – MaxGyver