您的位置:首页 > 编程语言 > Python开发

【python】编程语言入门经典100例--37

2016-03-11 16:24 387 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息