Ответ Социопата работает, но неэффективен, так как требует двух дополнительных умножений с плавающей запятой. Если вы делаете это для большого количества предметов, это займет вдвое больше времени! Вместо этого вы можете найти два самых больших числа напрямую. По сути, мы сортируем список и выбираем два самых больших, это может быть напрямую следующим образом:
def sumsquare(a,b,c):
# Strategy: swap, and make sure c is the smallest by the end
if c > b:
b, c = c, b
if c > a:
a, c = c, a
return a**2 + b**2
# Test:
print(sumsquare(3,1,2))
print(sumsquare(3,2,1))
print(sumsquare(1,2,3))
print(sumsquare(1,3,2))
print(sumsquare(2,1,3))
print(sumsquare(2,3,2))