从三个数字中获取两个最大的数字而不使用条件语句或循环在python 3.5中

时间:2015-10-12 07:24:25

标签: python python-3.x

  

完成传递三个整体的function1()函数   数字。该函数返回两个较大数字的总和。

print()
print(1, function1(1, 2, 3))
print(2, function1(11, 12, 3))
print(3, function1(6, 2, 5))

output should be 
1 5
2 23
3 11

这就是问题所在。我尝试谷歌搜索,但我发现所有使用条件 声明或循环。我想知道是否有其他方法可以不同时使用它们?原因是在引入条件语句和循环之前这个问题已经出现了。我可以提升自学能力 在我们进入下一章之前,必须有一个原因。 你觉得怎么样?(在CS101的自学期间)`

1 个答案:

答案 0 :(得分:2)

你可以对数字的元组进行排序并添加前2个值:

def function1(a, b, c):
    s = sorted((a, b, c), reverse=True)
    return s[0] + s[1]

sorted通常以smalles项开头,这就是您需要设置reverse=True的原因。

或者你可以将三者相加并减去最小值:

def function1(a, b, c):
    return sum((a, b, c)) - min(a, b, c)