python中的一行if-else条件
结果是:python中的一行if-else条件,python,conditional-statements,Python,Conditional Statements,结果是: def sum10(a, b): if sum([a, b]) % 10 == 0: return True; return False print sum10(7, 3) print sum10(-13, -17) print sum10(3, 8) 不是我所期望的: True True None 有什么想法吗?这就是你想要的 True True False Python中的三元If也是这样工作的 def sum10(a, b): return sum([a,
def sum10(a, b):
if sum([a, b]) % 10 == 0: return True; return False
print sum10(7, 3)
print sum10(-13, -17)
print sum10(3, 8)
不是我所期望的:
True
True
None
有什么想法吗?这就是你想要的
True
True
False
Python中的三元If
也是这样工作的
def sum10(a, b):
return sum([a, b]) % 10 == 0
我还可以推荐使用加号操作符吗
True if sum([a,b]) % 10 == 0 else False
你的代码
True if (a+b) % 10 == 0 else False
相当于
def sum10(a, b):
if sum([a, b]) % 10 == 0: return True; return False
因此,永远不会计算返回False
一些(可能是无止境的)替代方案:
def sum10(a, b):
if sum([a, b]) % 10 == 0:
return True; return False
或
或
或
或(最具可读性的IMHO)
如果您想使用If-else-one行程序,它们应该这样写:
return not (a + b) % 10
请注意,一个衬里中缺少两点 我认为
return False
永远不会执行,因为它位于if内部,而不是外部
因此,当您在if条件中获取true时,您正在执行
return true
,但决不会执行第二条语句。您可以尝试将结果存储在布尔变量中,然后在末尾返回该变量,而不是立即返回true或False。例如:
return True if sum([a, b]) % 10 == 0 else False
def sum10(a, b):
return sum([a, b])%10 == 0
谢谢,牛排先生。还有一个问题,你能把你的“更好地使用1”变成一行吗?@yozloy我添加了更多的例子。感谢三元溶液+1对它不起作用的原因做出了很好的解释,我认为我应该坚持三元方法。再次感谢你回答我的问题@alestanis,三元是通往goSome的方法。这里的一些解释不会不受欢迎。
return True if sum([a, b]) % 10 == 0 else False
return False if (a+b) % 10 else True
return not (a + b) % 10
return True if sum([a, b]) % 10 == 0 else False
def sum10(a, b):
return sum([a, b])%10 == 0
def sum(a,b):
bool result
if sum([a, b]) % 10 == 0:
bool=True
else:
bool=False
return bool