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)