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