本质是,让元素换位置,逐个比较最终排序。
例1:实现a1,a2值互换:
a1 = 123 a2 = 456 temp = a1 a1 = a2 a2 = temp print(a1) print(a2) 结果: 456 123
冒泡排序:
#!/bin/bash/env python
# -*- coding:utf-8 -*-
li =  [22,1,5,4,3,66,22,12,34,21]
for j in range(1,len(li)):
    for i in range(len(li)-1):
        if li[i] > li[i+1]:
            temp = li[i]
            li[i] = li[i+1]
            li[i+1] = temp
print(li)
结果:
[1, 3, 4, 5, 12, 21, 22, 22, 34, 66]
在函数内部可以调用其他函数。如果一个函数在内部调用自己,这个函数就是递归函数。
例:
#!/bin/bash/env python
def f4(a1,a2):
    if a1 > 10000:
        return
    print(a1)
    a3 = a1 + a2
    f4(a2,a3)
f4(0,1)
结果:
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
装饰器的目的:当要修改一段代码时,而不进行内部的修改,这就需要在外部加装饰器来达到效果。
原函数执行之前进行的操作:
#!/bin/bash/env python
def outer(func):
    def inner():
        print(‘hello‘)
        print(‘let is‘)
        print(‘moumou‘)
        r = func()
        return r
    return inner
@outer
def func1():
    print(‘yes‘)
func1()
结果:
hello
let is
moumou
yes
函数执行之后进行操作:
def outer(func):
    def inner():
        r = func()
        print(‘hello‘)
        print(‘let is‘)
        print(‘moumou‘)
        return r
    return inner
@outer
def func1():
    print(‘yes‘)
func1()
结果:
yes
hello
let is
moumou
@的功能:先执行outer函数,然后把发f1当做参数传给oute。, 将outer的返回值重新赋值给f1,所以f1的函数就等于inner()
只要函数应用装饰器,那么函数就被重新定义,重新定义为:装饰器的内层函数。
多个参数装饰器传递:
#!/bin/bash/env python
def outer(func):
    def inner(*args,**kwargs):
        print(args)
        print(kwargs)
        ret = func(*args,**kwargs)
        return ret
    return inner
@outer
def func1(a1,a2,a3):
    print("yes")
    return a1 + a2 +a3
func1(11,22,33)
结果:
(11, 22, 33)
{}
yes
多个装饰器的应用:
#!/bin/bash/env python
def outer(func):
    def inner(*args,**kwargs):
        print(‘cai‘)
        ret = func(*args,**kwargs)
        print(‘rui‘)
        return ret
    return inner
def outer1(func):
    def inner1(*args,**kwargs):
        print(‘123‘)
        ret = func(*args,**kwargs)
        return ret
    return inner1
@outer1
@outer
def func1(a1,a2,a3):
    print("yes")
func1(11,22,33)
结果:
123
cai
yes
rui
分析:
先把outer和func1看做一个整体,把inner放在outer1中执行,然后再执行下面的
原文:http://www.cnblogs.com/caicairui/p/7528698.html