python基礎練習題(輸入三個整數x,y,z,請把這三個數由小到大輸出)


day3

---------------------------------------------------------------

實例005:三數排序

題目: 輸入三個整數x,y,z,請把這三個數由小到大輸出。

分析:很常見的排序,不直接調排序函數的話,可以多寫幾個if,但是自己不滿足,試試冒泡排序,還好寫出來了

 1 list = []
 2 for i in range(1,6):
 3     list.append(int(input(f"請輸入第{i}個數:")))
 4 for j in range(0,len(list)):
 5     k = 0
 6     while k<=(len(list)-j-2):
 7         if list[k] >list[k+1]:
 8             list[k+1],list[k] = list[k],list[k+1]
 9         k+=1
10 print(list)

個人還比較滿意,哈哈哈,看看標准答案:

 1 raw = []
 2 for i in range(3):
 3     x = int(input('int%d: ' % (i)))
 4     raw.append(x)
 5 
 6 for i in range(len(raw)):
 7     for j in range(i, len(raw)):
 8         if raw[i] > raw[j]:
 9             raw[i], raw[j] = raw[j], raw[i]
10 print(raw)

感覺原理差不多,不過標准答案比我的易讀一點,相對來說少兩行,把raw[i]看成是較大的數,然后依次比較。

最后上個調用函數的:

1 raw2=[]
2 for i in range(3):
3     x=int(input('int%d: '%(i)))
4     raw2.append(x)
5 print(sorted(raw2))

這直接砍掉一半的代碼,編寫的效率確實高,sorted(raw2)可直接對列表排序,也可直接調用raw2.sort()方法,需要注意的是raw2.sort()方法會改變原列表,而sorted()是重新生成列表,不改變原列表,所以看情況使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM