有时我想检查一个表达式的逻辑值,所以我在 Python(或 IPython)中输入它并得到结果:
>>> a==3
True
但在其他情况下它不会那样工作(这里的字符串是 None):
>>> string
>>>
所以我这样检查逻辑值:
>>> if string: print('True')
...
>>>
是否有更短的方法来检查表达式的逻辑值? 任何返回 True 或 False 的函数都将在 if 条件下进行评估?
请您参考如下方法:
除了生成None 的表达式外,所有表达式都会被回显。
如果您执行的表达式不会导致数据被回显,那么您可能得到一个 None 结果。您可以显式测试 None:
>>> string = None
>>> string is None
True
使用 is None 产生非 None 结果。
如果您只想测试表达式的 bool 值,请使用bool() function ;它将返回符合标准 truth value testing rules 的结果:
>>> string = None
>>> bool(string)
False
同样,这保证不会是 None 并被回显。但是,您无法通过这种方式区分 None 和其他 false-y 值。例如,空字符串 '' 也会导致 False。
另一种方法是显式打印所有表达式结果,使用 repr() function :
>>> print(repr(string))
None
这会产生与回显完全相同的输出,唯一的异常(exception)是 None 也被打印出来。
