如何在交互式 shell 中检查表达式的逻辑值?

How to check logical value of an expression in the interactive shell?

有时我想检查一个表达式的逻辑值,所以我输入Python(或IPython)并得到结果:

>>> a==3
True

但在其他情况下它不会那样工作(这里的字符串是 None):

>>> string
>>>

所以我这样检查逻辑值:

>>> if string: print('True')
...
>>>

有没有更简单的方法来检查表达式的逻辑值? returns TrueFalse 的任何函数都将在 if[=25= 中以相同的方式求值]-条件?

除产生 None 的表达式外,所有表达式 都被回显。

如果您执行的表达式不会导致数据被回显,那么您可能会得到 None 结果。您可以显式测试 None

>>> string = None
>>> string is None
True

使用 is None 产生非 None 结果。

如果您只想测试表达式的 布尔值 值,请使用 bool() function; it'll return a result following the standard truth value testing rules:

>>> string = None
>>> bool(string)
False

同样,这保证不会被 None 回显。但是,您无法通过这种方式区分 None 和其他 false-y 值。例如,空字符串 '' 也会导致 False

另一种方法是显式打印所有表达式结果,使用 repr() function:

>>> print(repr(string))
None

这会产生与回显完全相同的输出,唯一的例外是 None 也被打印出来。

Is there a shorter way for checking the logical value of an expression?

是的,这是 bool() 函数:

>>> string = None
>>> bool(string)
False

是的,直接从表达式创建一个布尔值,它总是 TrueFalse:

>>> bool(string)
False

string is Nonestring is not None 将 return 您需要的布尔值。

>>> string = None
>>> string is None
>>> True