1 #题目:对10个数进行排序


代码:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   2  =  1
   3  li  =  []
   4  while  i < =  10 :
   5      li.append( int ( input ( '请输入第%d个数字:' % i)))
   6      + =  1
   7  print ( '这十个数分别为:' )
   8  print (li)
   9 
  10  liorder  =  []
  11  =  0 
  12  while  = =  0 :
  13      if  li ! =  []:
  14          =  li[ 0 ]
  15          for  in  range ( 0 , len (li)):
  16              if  m > li[i]:
  17                  =  li[i]
  18          liorder.append(m)
  19          li.remove(m)
  20      else :
  21          =  1
  22  print ( '排序之后为:' )
  23  print (liorder)


运行结果:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[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] #


代码解释:


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