码迷,mamicode.com
首页 > 其他好文 > 详细

函数复习

时间:2018-01-07 15:55:33      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:val   war   不能   time()   color   round   没有   表达式   改变   

函数:

1,解决代码重用的问题

2,统一维护

3,程序组织结构清晰,可读性强

定义函数

1,先定义,后使用。

2,最好一个功能,定义一个函数。

3, 定义无参函数

def foo():
      print(‘foo‘)

      定义有参函数

def my_sum(x,y):
     return x+y

      定义空函数

 

调用函数

1,语句形式 ---->foo()

2,表达式形式 ---->res=10*my_sum(1,2)

3,函数调用做为另外一个函数的参数:print(my_sum(1,2))

函数的返回值

不写return ---> None

return 一个value ---> 这个value

return 多个值 ---> 由这多个值组成的元组

函数的参数

形参和实参

def my_sum(x,y):
     return x+y
my_sum(1,2)

#定义阶段,形参,调用阶段,实参
#实参必须要有实际的值

  实参的形式

       实参可以是任何类型,但最好避免传可变类型。函数执行过程中,会改变外部的值。

从实参的角度

按位置传值  my_sum(1,2)

按关键字传值 my_sum(y=1,x=2)

混合传值  my_sum(1,y=2)

注意:

1,位置在前,关键字在后

2,不能对一个形参,重复赋值

在python3中,变量名只是一种绑定关系,没有储值功能

 

从形参的角度

位置参数 def foo(x,y,z)

默认参数 def foo(x,y=1)

什么时候用?二者的位置排列,特性?

1,默认参数,可传值,可不传值

2,未知参数,必须传值

*args和**kwargs

1, *args

def foo(x,*args)
foo(1,2,3,4,5,6)
#多余的按位置调用的,拼成一个元组

2,   **kwargs

def foo(x,**kwargs)
foo(1,x=2,y=3)
#多余的按关键字传值,赋值成一个字典

3,混用

def foo(x,*args,**kwargs)
     foo(1,2,3,4,5,6,a=1,b=2,c=3)
 x=1
 args=(2,3,4,5,6)
kwargs={‘a‘:1,‘b‘:2,‘c‘:3}

 4,例子

def auth(name,password,sex=‘male‘):
     pass

def timmer(*args,**kwargs):
start_time=time.time() auth(*args,**kwargs)
stop_time=time.time()
print(‘run time is %s‘ %(stop_time-start_time)

timer(name=1,password=123,sex=‘female‘)

  

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

     

 

函数复习

标签:val   war   不能   time()   color   round   没有   表达式   改变   

原文地址:https://www.cnblogs.com/catherine007/p/8227917.html

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