1 #题目:对10个数进行排序
代码:
2 i = 1
3 li = []
4 while i <= 10:
5 li.append(int(input('请输入第%d个数字:'%i)))
6 i += 1
7 print('这十个数分别为:')
8 print(li)
9
10 liorder = []
11 x = 0
12 while x == 0:
13 if li != []:
14 m = li[0]
15 for i in range(0,len(li)):
16 if m > li[i]:
17 m = li[i]
18 liorder.append(m)
19 li.remove(m)
20 else:
21 x = 1
22 print('排序之后为:')
23 print(liorder)
运行结果:
[root@HK code_100]# python code_37.py
请输入第1个数字:234
请输入第2个数字:8765
请输入第3个数字:234235
请输入第4个数字:45
请输入第5个数字:7
请输入第6个数字:324534647
请输入第7个数字:4324
请输入第8个数字:45676834
请输入第9个数字:345
请输入第10个数字:45654534534546675657
这十个数分别为:
[234, 8765, 234235, 45, 7, 324534647, 4324, 45676834, 345, 45654534534546675657]
排序之后为:
[7, 45, 234, 345, 4324, 8765, 234235, 45676834, 324534647, 45654534534546675657]
[root@HK code_100]#
代码解释:
#思路:在10个数字中每次取出最小值,添加到新的列表,循环结束,新的列表就是10个数字的升序排列
2 i = 1 #定义i变量,初始化为1
3 li = [] #创建一个空列表,接收输入的10个数字
4 while i <= 10: #循环输入10个数字
5 li.append(int(input('请输入第%d个数字:'%i))) #将输入的数字转换成int格式,添加到li列表当中
6 i += 1 #循环终止条件
7 print('这十个数分别为:') #打印输入的乱序的10个数字
8 print(li)
9
10 liorder = [] #定义一个新的空列表,用于放置取出的最小值
11 x = 0 #定义一个while判断的flag,初始值为0
12 while x == 0: #flag判断
13 if li != []: #当li列表非空也就是没有被取完所有数字的时候
14 m = li[0] #定义一个变量m,将li列表第一个值赋值给m
15 for i in range(0,len(li)): #遍历li列表
16 if m > li[i]: #如果m值(li[0])大于后面的数字
17 m = li[i] #将较小的数字赋值给m,始终保持m值是li中最小值
18 liorder.append(m) #将li中的最小值m添加到liorder中
19 li.remove(m) #在原li列表中删除m元素
20 else: #如果li列表为空
21 x = 1 #flag x赋值为1,跳出while循环
22 print('排序之后为:') #打印排序后的列表
23 print(liorder)