冒泡排序

         li = [44,33,28,23,8,7]

        

         for i in range(len(li)-1):  #取出一个值,然后与其它值做依次做比较

                  for j in range(i+1,len(li)):

                           if li[i]> li[j]:

                                   temp = li[i];li[i]=li[j];li[j]=temp;

        print li

        

         for j in range(1,len(li)): #

                  for i in range(len(li)-j): #相邻两个值做比较

                           if li[i] < li[i+1]:

                                   temp = li[i];li[i] = li[i+1];li[i+1] = temp

         print li

 

 

如果字符串 列表 字典对象没有值,那么它的布尔值为False

 

lambda   简单函数的另一种写法,自动返回值

         func = lambda arg:arg + 1   

         func()

         如:def func1(a):                        func2 = lambda a:a+1

                          return a+1

        n = func1(100)                       n=func2(100)

         可以有多个参数,用逗号分隔

         可以与下面的map,reduce,filter配合使用

         如:result = map(lambda a:a+1,list)  将list中的每个值加1

map  遍历序列,对每一项元素进行相同的操作

         map(fucntion,sequence[,sequence,…])   -à list

 

filter  遍历序列,对每一项操作的结果进行真假判断,只有为真的返回

         filter(function or None,sequence)  à list,tuple or string 如果用None,那么只对每一项进行真假判断

 

reduce  遍历序列,对其中的元素进行累积操作

         reduce(function,sequcne[,initial])   à value

 

 

 

yield生成器

xrange为生成器

它会记住当前状态,返回yield的值,下次调用时从yield下面开始执行,一般放在循环中

 

decorator 装饰器

         以一个函数做为参数的函数

         def auth(func):

                  def inner():

                           print 'before'

                           func()

                           print 'after'

                  return inner

 

         @auth

         def f1():

             print 'f1'

 

         f1()

         @的操作 1.先将下面的函数名f1做为参数传入装饰器函数中àauth(f1)

                           2.执行auth(f1),返回inner,相当于f1 -- >inner,当执行f1()时变成了inner()

 

     

带参数的装饰器

         def auth(func):

                  def inner(*args,**kwargs):

                           print 'before'

                           func(*args,**kwargs)

                           print 'after'

                  return inner

 

         @auth

         def f1(a,b):

             print 'f1'

 

         f1(1,2)