任何3个给定数字的最大差异使代码生效

2024-06-11 00:42:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在针对python的vocareum实验室中做了这件事,但是我没有得到正确性的满分,语法也没有得到满分。关于如何在不使用内置python函数的情况下提高代码效率,有什么建议吗?非常感谢你的帮助

任务:在不使用max、min和sorted等python函数的情况下,找出任意给定3个数字之间的最大差异。使用if或while

def greatest_difference(n1, n2, n3):
   d1=n1-n2
   d2=n1-n3
   d3=n2-n3

   diff1=abs(d1)
   diff2=abs(d2)
   diff3=abs(d3)

   if diff1>diff2 and diff1>diff3:
        return str(diff1) 
   elif diff2>diff1 and diff2>diff3:
        return str(diff2)
   elif diff3>diff1 and diff3>diff2:
        return str(diff3)

Tags: and函数returnif情况absd2d1
1条回答
网友
1楼 · 发布于 2024-06-11 00:42:56

只要以合理的方式重新定义函数

def my_max(a, b):
    return a if a >= b else b

所以你可以:

def greatest_difference(a, b, c):
    diffs = b-a, c-b, c-a

    # avoids the use of the `abs` built-in
    for i, diff in diffs:
        if diff < 0:
            diffs[i] = diff * (-1)

    d1, d2, d3 = diffs
    return my_max(d1, my_max(d2, d3))

相关问题 更多 >