Python 这两者之间有区别吗假;及;不是",;当检查空字符串时?
我在stackoverflow的其他地方读到,在Python中检查空字符串(例如,假设它是一个名为Python 这两者之间有区别吗假;及;不是",;当检查空字符串时?,python,boolean-expression,Python,Boolean Expression,我在stackoverflow的其他地方读到,在Python中检查空字符串(例如,假设它是一个名为response)的字符串)最优雅的方法是: if not response: # do some stuff 原因是字符串可以计算为布尔对象 所以我的问题是,下面的代码说的是相同的事情吗 if response == False: # do some stuff 有区别吗?是的:一个有效,另一个无效 if response==False仅当response的实际值为False
response
)的字符串)最优雅的方法是:
if not response:
# do some stuff
原因是字符串可以计算为布尔对象
所以我的问题是,下面的代码说的是相同的事情吗
if response == False:
# do some stuff
有区别吗?是的:一个有效,另一个无效
if response==False
仅当response
的实际值为False
时才为true。对于空字符串,情况并非如此
如果没有响应
,另一方面,验证响应
是否错误;也就是说,它是Python在布尔上下文中接受为false的值之一,其中包括None、false、空字符串、空列表等等。如果bool(response)=False如前所述存在差异,则这相当于
not response
检查bool(response)==False
或len(response)==0
是否失败,因此最好的选择是检查内容是否为空、None
、0
或False
。看
另一个变量只检查response==False
,只有当且仅当response为False
时才会出现这种情况。但是空字符串不是False
如果响应为“无”,则不会执行第二个