有时我想检查表达式的逻辑值,所以我在Python(或IPython)中键入它并得到结果:
>>> a==3
True
但在其他情况下它不起作用(此处字符串为None):
>>> string
>>>
所以我检查逻辑值如下:
>>> if string: print('True')
...
>>>
是否有更短的方法来检查表达式的逻辑值? 任何返回 True 或 False 的函数的方式与在 if -condition中评估的方式相同吗?
答案 0 :(得分:7)
所有表达除了那些产生None
的表达式都会被回应。
如果执行的表达式不会导致数据被回显,那么您可能会得到None
结果。您可以明确地测试None
:
>>> string = None
>>> string is None
True
使用is None
会产生非None
结果。
如果您只想测试表达式的 boolean 值,请使用bool()
function;它会返回符合标准truth value testing rules的结果:
>>> string = None
>>> bool(string)
False
同样,这保证不会None
并且回应。但是,您不能以这种方式区分None
和其他false-y值。例如,空字符串''
也会产生False
。
另一种方法是使用repr()
function:
>>> print(repr(string))
None
然后产生与echoing完全相同的输出,只有例外情况是打印None
。
答案 1 :(得分:5)
答案 2 :(得分:2)
是的,直接从表达式创建一个布尔值,该表达式始终为True
或False
:
>>> bool(string)
False
答案 3 :(得分:1)
string is None
或string is not None
将返回您需要的布尔值。
>>> string = None
>>> string is None
>>> True