python基础练习题(输入三个整数x,y,z,请把这三个数由小到大输出)
2021-05-16 22:36 第二个卿老师 阅读(2655) 评论(0) 编辑 收藏 举报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()是重新生成列表,不改变原列表,所以看情况使用。