a = 'asd'
b = 'dsa'
if a is not None and b is not None:
pass
有什么方法可以改进这段代码吗?
也尝试过:
if not (a is None, b is None):
if not (a, b is None):
两者都不起作用。
答案 0 :(得分:3)
使用内置功能all()
a = 'asd'
b = 'dsa'
print all([a,b])
#True
如果一个或多个变量为None
,则会生成False
因此,如果你想在某些条件下使用它,代码将是:
a = 'asd'
b = 'dsa'
if all([a,b]):
print 'All True!!!!'
#All True!!!!
答案 1 :(得分:1)
您是否在寻找更好的or
?如果是这样,你可以这样做 -
>>> a = None
>>> b = 'dsa'
>>> if None in [b,a]: print "hi"
...
hi
答案 2 :(得分:1)
有一个版本非常接近你的第一次尝试:
if not (a is None or b is None):
虽然我不相信这样做好多了......
答案 3 :(得分:1)
if not(a is None or b is None)
Yay De Morgan's Laws!
答案 4 :(得分:0)
刚
If a and b
没问题
a is none
等于a
if.. else..
答案 5 :(得分:0)
您可以将要测试的所有值放在列表中。根据结果迭代该列表和分支。像
这样的东西a = None
b = None
c = 1
values = [a,b,c]
for v in values:
if v == None: #or possibly just if v:
break
如果任何值不是None,您可以将break替换为您想要采取的任何操作。
答案 6 :(得分:0)
如果这是你做得很多的话,你可以这样做:
def hasNone(*args):
for i in args:
if i is None:return True
return False
然后
if not hasNone(a,b,etc):
pass