if not
我对 中的陈述有疑问Python 2.7
。
我已经编写了一些代码并使用了if not
语句。在我编写的代码的一部分中,我提到了一个函数,该函数包含一个if not
用于确定是否输入了可选关键字的语句。
它工作正常,除非0.0
是关键字的值。我理解这是因为这是0
被认为是“不”的事情之一。我的代码可能太长而无法发布,但这是一个类似的(尽管是简化的)示例:
def square(x=None):
if not x:
print "you have not entered x"
else:
y=x**2
return y
list=[1, 3, 0 ,9]
output=[]
for item in list:
y=square(item)
output.append(y)
print output
但是,在这种情况下,我得到了:
you have not entered x
[1, 9, None, 81]
我想在哪里得到:
[1, 9, 0, 81]
在上面的示例中,我可以使用列表推导,但假设我想使用该函数并获得所需的输出,我该怎么做呢?
我的一个想法是:
def square(x=None):
if not x and not str(x).isdigit():
print "you have not entered x"
else:
y=x**2
return y
list=[1, 3, 0 ,9]
output=[]
for item in list:
y=square(item)
output.append(y)
print output
这可行,但似乎有点笨拙。如果有人有另一种很好的方式,我将不胜感激。