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

时间:2017-09-15 09:04:04

标签: python python-interactive

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

>>> a==3
True

但在其他情况下它不起作用(此处字符串为None):

>>> string
>>>

所以我检查逻辑值如下:

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

是否有更短的方法来检查表达式的逻辑值? 任何返回 True False 的函数的方式与在 if -condition中评估的方式相同吗?

4 个答案:

答案 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)

  

是否有更短的方法来检查a的逻辑值   表达

是的,它是bool()功能:

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

答案 2 :(得分:2)

是的,直接从表达式创建一个布尔值,该表达式始终为TrueFalse

>>> bool(string)
False

答案 3 :(得分:1)

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

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