我已经阅读计算器的其他地方,最优雅的方式来检查在Python空字符串(例如,让我们说这是一个叫response
字符串)是做:检查空字符串时,“== False”和“不是”有区别吗?
if not response:
# do some stuff
原因是,字符串可估算布尔对象。
所以我的问题是,下面的代码是否说同样的事情?
if response == False:
# do some stuff
我已经阅读计算器的其他地方,最优雅的方式来检查在Python空字符串(例如,让我们说这是一个叫response
字符串)是做:检查空字符串时,“== False”和“不是”有区别吗?
if not response:
# do some stuff
原因是,字符串可估算布尔对象。
所以我的问题是,下面的代码是否说同样的事情?
if response == False:
# do some stuff
正如已经提到的那样,有一个区别。
的not response
检查bool(response) == False
或失败,如果len(response) == 0
原来如此,检查如果事情是空None
,0
或False
的最佳选择。见the python documentation on what is considered "Falsy"。
其他变种只是检查是否response == False
,这是唯一的情况当且仅当response is False
。但是一个空字符串is not False
!
是否有区别?是的:一种可行,另一种不行。
if response == False
只有在response
的实际值为False
时才为真。对于空字符串,情况并非如此。
if not response
另一方面验证response
是否有误;也就是说,它是Python在布尔上下文中接受为false的值之一,其中包括None,False,空字符串,空列表等。它相当于if bool(response) == False
。
如果响应是NOne,将不执行秒 –