本文將以Python求三個數最大值為中心,從以下三個方面闡述該問題:
一、算法實現
求三個數最大值的算法實現有多種方式,下面將介紹三種方法。
方法一:使用max函數
def max_of_three(a, b, c):
return max(a, b, c)
上面的代碼中,max函數從三個數中找到最大值並返回。
方法二:使用if語句
def max_of_three(a, b, c):
if a >= b and a >= c:
return a
elif b >= a and b >= c:
return b
else:
return c
上面的代碼中,使用if語句判斷三個數之間的最大值。
方法三:使用列表排序
def max_of_three(a, b, c):
nums = [a, b, c]
nums.sort()
return nums[2]
上面的代碼中,將三個數放進列表中進行排序,然後返回最大值。
二、性能比較
針對上面提供的三種求解方法,現在來對它們進行基準測試。
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函數獲取三個數字,然後使用上文提到的方法求得最大值並輸出。
原創文章,作者:IRLDB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/373023.html