2016-04-29 66 views
2

我已经阅读计算器的其他地方,最优雅的方式来检查在Python空字符串(例如,让我们说这是一个叫response字符串)是做:检查空字符串时,“== False”和“不是”有区别吗?

if not response: 
    # do some stuff 

原因是,字符串可估算布尔对象。

所以我的问题是,下面的代码是否说同样的事情?

if response == False: 
    # do some stuff 
+0

如果响应是NOne,将不执行秒 –

回答

0

正如已经提到的那样,有一个区别。

not response检查bool(response) == False或失败,如果len(response) == 0原来如此,检查如果事情是空None0False的最佳选择。见the python documentation on what is considered "Falsy"

其他变种只是检查是否response == False,这是唯一的情况当且仅当response is False。但是一个空字符串is not False

5

是否有区别?是的:一种可行,另一种不行。

if response == False只有在response的实际值为False时才为真。对于空字符串,情况并非如此。

if not response另一方面验证response是否有误;也就是说,它是Python在布尔上下文中接受为false的值之一,其中包括None,False,空字符串,空列表等。它相当于if bool(response) == False