针对上面提供的三种求解方法,现在来对它们进行基准测试。
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函数获取三个数字,然后使用上文提到的方法求得最大值并输出。
标签:__,timeit,return,18,性能,three,max,print,比较 From: https://blog.51cto.com/wusen/6768938