针对上面提供的三种求解方法,现在来对它们进行基准测试。

import timeit

def max_of_three_1(a, b, c):
    return max(a, b, c)

def max_of_three_2(a, b, c):
    if a >= b and a >= c:
        return a
    elif b >= a and b >= c:
        return b
    else:
        return c

def max_of_three_3(a, b, c):
    nums = [a, b, c]
    nums.sort()
    return nums[2]

if __name__ == "__main__":
    print(timeit.timeit("max_of_three_1(1, 2, 3)", setup="from __main__ import max_of_three_1"))
    print(timeit.timeit("max_of_three_2(1, 2, 3)", setup="from __main__ import max_of_three_2"))
    print(timeit.timeit("max_of_three_3(1, 2, 3)", setup="from __main__ import max_of_three_3"))

上面的代码中,使用Python的timeit库进行基准测试,结果如下:

0.1354021
0.18545920000000002
0.3792012000000001

从结果上可以看出,使用max函数的效率最高,if语句次之,使用列表排序的效率最低。

三、使用示例

下面是一个使用示例,假设需要从三个输入值中找出最大值:

a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))
print("输入的三个数字中最大值为:{}".format(max_of_three(a, b, c)))

上面的代码中,通过input函数获取三个数字,然后使用上文提到的方法求得最大值并输出。