1 #题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

代码:

  2   3 i = int(input('请输入一个数字:'))  4 li = [10,20,30,40,50]  5 print(li)  6 for x in range(5):  7     if i <= li[0]:  8         li.insert(0,i)  9         break 10     elif i >= li[4]: 11         li.append(i) 12         break 13     elif i > li[x] and i <= li[x+1]: 14         li.insert(x+1,i) 15         break 16 print(li)

运行结果:

[root@HK code_100]# python code_39.py 请输入一个数字:7[10, 20, 30, 40, 50][7, 10, 20, 30, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:15[10, 20, 30, 40, 50][10, 15, 20, 30, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:35[10, 20, 30, 40, 50][10, 20, 30, 35, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:80[10, 20, 30, 40, 50][10, 20, 30, 40, 50, 80][root@HK code_100]#

代码解释:

  2   3 i = int(input('请输入一个数字:'))            #定义变量i,接收输入的数字,转换成int类型  4 li = [10,20,30,40,50]                        #定义一个初始list  5 print(li)                                    #打印list,供参考比较  6 for x in range(5):                           #遍历列表list  7     if i <= li[0]:                           #如果i值小于li的最小值  8         li.insert(0,i)                       #在列表list的头部插入  9         break                                #有匹配项后跳出循环,避免重复插入 10     elif i >= li[4]:                         #如果i值大于li最大值 11         li.append(i)                         #在列表list尾部追加数字i 12         break                                #有匹配项后跳出循环,避免重复插入 13     elif i > li[x] and i <= li[x+1]:         #如果i大于列表前一项,小于列表后一项 14         li.insert(x+1,i)                     #将i值插入到li列表中 15         break                                #跳出循环,避免重复插入 16 print(li)                                    #打印插入i之后的列表li