前言
大部分初學編程的人來說剛開始都會練習判斷兩個數(shù)或者三個數(shù)的大小,來熟悉某種語言的特性和最基本的if,else循環(huán),當我們學習了更高級的語法知識后,又會有不同的實現(xiàn)方式,比如這道練習題依次接收用戶輸入的3個數(shù),排序后打印現(xiàn)在我們來看一下在Python中都有哪些方法來實現(xiàn):
1, 采用分支結(jié)構(gòu),用最基本的if和else來實現(xiàn):
a = int(input('a>>>'))
b = int(input('b>>>'))
c = int(input('c>>>'))
if a>b:
if b>c:
print('a>b>c')
else:
if a>c:
print('a>c>b')
else:
print('c>a>b')
elif a
b>a')
else:
if c>a:
print('b>c>a')
else:
print('b>a>c')
這可能是大部分初學編程er的第一想法,但較為繁瑣,由于我最近剛學到列表list,那么如果用list來實現(xiàn)的話方法有哪些呢
2,引入列表
nums = []
for i in range(3):
nums.append(int(input('{}; '.format(i))))
if nums[0]>nums[1]:
if nums[0]>nums[2]:
i3 = nums[0]
if nums[1] > nums[2]:
i2 = nums[1]
i1 = nums[0]
else:
i2 = nums[0]
i1 = nums[1]
else:#0<2 1<0
i3 = nums[2]
i2 = nums[0]
i1 = nums[1]
else: #[0]<[1]
if nums[0] < nums[2]:
i1 = nums[0]
if nums[1] < nums[2]:
i2 = nums[1]
i3 = nums[2]
else:#[1]>[2]
if nums[0] > nums[2]:
i2 = nums[0]
i3 = mums[2]
else:
i2 = nums[2]
i3 = mums[0]
print(i1,i2,i3)
雖然我們在這里用了list,但是邏輯上還是第一種逐個比較后再打印的思想,所以可以看到,并沒有變簡潔。
3,使用Max函數(shù)
nums = []
for i in range(3):
nums.append(int(input('{}: '.format(i))))
#此處不能使用for循環(huán),不能一邊迭代該列表,同時刪除或者增加該列表
while True:
x = max(nums)
print(x)
nums.remove(x)
if len(nums) == 1:
print(nums[0])
break
這種方法的思路是找出最大值,打印再剔除,直到最后打印出最小值。這樣的話我們就能以較少的代碼來實現(xiàn)這一任務了。max函數(shù)和min函數(shù)是Python的內(nèi)置函數(shù),在求最大值和最小值上更快速便捷。但當我們需要比較并打印出很多的數(shù)字時,這種方法就沒那么高效了。
4,用列表的sort操作來實現(xiàn)大小比較并打印輸出
sort(key=None, reverse=False) -> None
對列表元素進行排序,就地修改,默認升序
nums = []
out = None
for i in range(3):
nums.append(int(input('{}: '.format(i))))
nums.sort()
print(nums)
這一次可以看到,代碼簡潔了很多,而且即便我們需要增加輸入量,比較多個數(shù)據(jù)也只需要做很少的改動即可。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

