针对上面提供的三种求解方法,现在来对它们进行基准测试。
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函数获取三个数字,然后使用上文提到的方法求得最大值并输出。