1. #!/usr/bin/env python 
  2. #个人学习笔记,无其他用途
  3. def add(x=9,y=10): 
  4.     if x>y: 
  5.         a=x+y 
  6.         print "x+y" 
  7.         return a 
  8.     if x<y: 
  9.         a=y-x 
  10.         print "y-x" 
  11.         return a 
  12.     if x==y: 
  13.         a=x*y 
  14.         print "x*y" 
  15.         return a 
  16.  
  17. print add(2,3
  18. print add(5,4
  19. print add(6,6

 

将一个数组的值传递给函数

  1. #!/usr/bin/env python 
  2.  
  3. t=('name','tom'
  4.  
  5. def f(x,y): 
  6.     print "%s: %s" % (x,y) 
  7. f(1,2
  8. f(*t) 

 将字典的值传递给函数

 

  1. #!/usr/bin/env python 
  2.  
  3. d={'age':30,'name':'tom'
  4. def f(name='lisa',age=23): 
  5.      print "name---%s" % name 
  6.      print "age----%s" % age 
  7. f(**d) 
  8. #如果是一个*,则传递的是字典中的key,两个**,是传递的是字典中的value

 处理多余的参数传递

 

  1. #!/usr/bin/env python 
  2. def f(x,*args): 
  3.      print x 
  4.      print args 
  5. f(1,2,3,4
  6. #结果显示为
  7. 1 (2, 3, 4) #2,3,4作为一个整体传递给args了

 

 

  1. def m(x,*args,**kwords): 
  2.      print x 
  3.      print args 
  4.      print kwords 
  5. m(1,2,3,4,5,args=2
  6. #运行结果
  7. 1 (2, 3, 4, 5) {'args': 2}

 只用lambda构造函数

  1. #!/usr/bin/env python 
  2. def f(x,y): 
  3.      return x*y 
  4. print f(2,3) 
  5. #下面使用lambda来写此函数 
  6. g=lambda x,y:x*y 
  7. print g(2,3) 

 阶乘运算,用reduce函数

  1. #!/usr/bin/env python 
  2. l=range(1,6
  3. def f(x,y): 
  4.      return x*y 
  5. print reduce(f,l) 
  6. 下面使用lambda来写此功能
  7. f=lambda x,y:x*y print reduce(f,l)
  8. 亦可精简为
  9. print reduce(lambda x,y:x*y,l)
  10. 上面的列子亦可一句话解决
  11. print reduce(lambda x,y:x*y,range(1,6))

 计算器模型

  1. #!/usr/bin/env python 
  2. #coding:utf-8 
  3. from __future__ import division 
  4.  
  5. def jia(x,y): 
  6.     return x+y 
  7.  
  8. def jian(x,y): 
  9.     return x-y 
  10.  
  11. def cheng(x,y): 
  12.     return x*y 
  13.  
  14. def chu(x,y): 
  15.     return x/y 
  16.  
  17. def operator(x,o,y): 
  18.     if o =="+"
  19.         print  jia(x,y) 
  20.     elif o =="-"
  21.         print jian(x,y) 
  22.     elif o =="*"
  23.         print cheng(x,y) 
  24.     elif o =="-"
  25.         print chu(x,y) 
  26.     else
  27.          pass 
  28.  
  29. operator(2,'+',4

 上面的列子等效于下面的

  1. #!/usr/bin/env python 
  2.  
  3. from __future__ import division 
  4. x=1 
  5. y=2 
  6. operator="/" 
  7. result={ 
  8.     "+":x+y, 
  9.     "-":x-y, 
  10.     "*":x*y, 
  11.     "/":x/y 
  12. print result.get(operator) 

 取值的内置函数

 

  1. >>> max(1,2,3,4,5,6)  #取最大数
  2. 6 
  3. >>> min(1,2,3,4,5,6)  #取最小数
  4. 1 
  5. >>> abs(-100)  #取绝对值
  6. 100 
  7. >>> l=['a','b'
  8. >>> len(l)  #取长度
  9. 2 
  10. >>> divmod(5,2) #取商和余数 (2, 1)
  11. >>> pow(2,3) #乘方 8
  12. >>> pow(2,3,4) #乘方可以整除 0
  13. >>> pow(2,3,3) #乘方不可以被整除,余数是2 2
  14. >>> callable(l) #函数不可以被调用
  15. False
  16. >>> callable(f) #函数可以被调用 True
  17. >>> isinstance(f,list)#判断类型
  18. False
  19. >>> range(1,6)
  20. [1, 2, 3, 4, 5]
  21. >>> xrange(6)
  22. xrange(6)
  23.