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()是重新生成列表,不改变原列表,所以看情况使用。