码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数(续)

时间:2017-04-24 15:46:41      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:长度   utf-8   循环   第一个   移位   需要   个数   script   for   

先学习之前未完成的冒泡算法

li = [13,22,6,99,11]

从小到大

从第一个数字比较把大的往后移位

for m in range(4):

  num1 = li[m]

  num2 = li[m+1]

  if num1 > num2:

    temp = li[m]

    li[m] = num2

    li[m+1] = temp

print li

循环四次就把最大数放到列表的最后

for m in range(3):

  num1 = li[m]

  num2 = li[m+1]

  if num1 > num2:

    temp = li[m]

    li[m] = num2

    li[m+1] = temp

以此类推写成以下代码

vim day4-1.py

#!/usr/bin/python
# -*- coding:utf-8 -*-


li = [13,22,6,99,11] for m in range(4): #循环 num1 = li[m] num2 = li[m+1] if num1 > num2: #前一个数字和后一个对比如果前面数字大与后面的对调 temp = num1 li[m] = num2 li[m+1] = temp print li for m in range(3): num1 = li[m] num2 = li[m+1] if num1 > num2: temp = num1 li[m] = num2 li[m+1] = temp print li for m in range(2): num1 = li[m] num2 = li[m+1] if num1 > num2: temp = num1 li[m] = num2 li[m+1] = temp print li for m in range(1): num1 = li[m] num2 = li[m+1] if num1 > num2: temp = num1 li[m] = num2 li[m+1] = temp print li #多次循环得到排序结果

  

[root@VPN scripts]# python day4-1.py
[13, 6, 22, 11, 99]
[6, 13, 11, 22, 99]
[6, 11, 13, 22, 99]
[6, 11, 13, 22, 99]

 

这样的循环很繁琐,假如不知道列表的长度更加麻烦需要多次循环

vim day4-2.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
li = [13,22,6,99,11]
for n in range(1,len(li)-1):            #外层循环1,2,3,4
        for m in range(len(li)-n):      #内层循环4,3,2,1
                num1 = li[m]
                num2 = li[m+1]
                if num1 > num2:
                        temp = li[m]
                        li[m] = li[m+1]
                        li[m+1] = temp
print li

  运行结果的一样的

[root@VPN scripts]# python day4-2.py
[6, 11, 13, 22, 99]

 

Python函数(续)

标签:长度   utf-8   循环   第一个   移位   需要   个数   script   for   

原文地址:http://www.cnblogs.com/minseo/p/6756850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!