Python if语句:False与0.0

Izz*_*sin 6 python if-statement

是否有可能:

for k,v in kwargs.items()
    if v == None or v == '' or v == 1.0 or v == False:
       del kwargs[k]
Run Code Online (Sandbox Code Playgroud)

如果v == 0.0,不删除密钥?(假似乎等于0.0),并且没有删除等于True的键.

mou*_*uad 12

或者你可以这样说:

if v in (None, '', 1.0) or v is False:
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 11

你应该使用v is False而不是v == False.这同样适用于您的比较None.请参阅PEP 8 - Python样式指南:

像None这样的单例的比较应该总是用'is'或'is not'来完成,而不是等于运算符.


Ton*_*nen 5

从PEP 8开始,根据你的建议减速

不要使用==将布尔值与True或False进行比较

   Yes:   if greeting:

   No:    if greeting == True:

   Worse: if greeting is True:
Run Code Online (Sandbox Code Playgroud)

同时比较浮点值你不应该使用==但是

abs(x-other)<verysmall

  • `if not x` beats`if x == False`,肯定.但在这里,问题是如何检查某些东西是否真的是布尔值`False`,而不是"falsy". (3认同)