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

函数操作

时间:2020-03-25 23:29:03      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:固定   inpu   func   ack   形参   年龄   地址   strong   执行   

函数

定义函数时申请内存空间保存函数体代码,将上述内存地址绑定函数名。定义函数时不会执行函数整体代码,但是会检测函数语法。

调用函数时通过函数名找到函数的内存地址,然后触发函数体代码的执行。

无参函数:def func():

有参函数:

def jisuan(x,y):
print(x+y)
print(x*y)
jisuan(2,3) # 5 # 6

空函数,函数代码体为pass:

def func(x,y):

  pass

def pai():
name = input("你的姓名:")
age = input("你的年龄:")
msg = "名字:{} 年龄:{}".format(name,age)
print(msg)
pai()

 

 函数形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名

 函数实参:在调用函数时传入的值称之为实际参数,简称实参,相当于变量值

 在调用函数时,实参(变量值)会绑定给形参(变量名),这种绑定关系只能在函数体内使用,调用关系结束后接触绑定关系。

 1、位置参数:按照从左到右的顺序依次定义的参数称之为位置参数

      位置形参的特点:必须被传值,参数不能多也不能少

     位置实参:在函数调用阶段,按照位置的顺序与形参一一对应

def func(x,y):
print(x,y)
func(1,2)

 2、关键字参数:

      关键字实参:在函数调用阶段,按照key=value的形式传入的值

def func(x,y):
print(x,y)
func(x=1,y=2)

 3、默认参数:

      默认形参:在定义函数阶段,就已经被赋值的形参,在条用阶段不用为其赋值,若后续需要重新赋值也是可以再赋值的。

      默认值传的是值的内存地址,虽然可以传任意类型,但是最好不要传可变类型。

     函数调用最好不受外界代码的影响

def func(x,y=3):
print(x,y)
func(x=1)
func(x=1,y=5)
def func(x,y,z,l=None):
if l is None:
l = []
l.append(x)
l.append(y)
l.append(z)
print(l)
new_l = [11,22]
func(1,2,3,new_l)

4、可变长参数:在调用参数时,传入的值(实参)不固定 

 (1)、*形参名:用来接收溢出位置实参,*后面约定俗成跟args

def func(x,y,*z):
print(x,y,*z)
func(1,3,5,2,6,7,4) # 1 3 5 2 6 7 4
def func(x,y,*z):
print(x,y,z)
func(1,3,5,2,6,7,4) # 1 3 (5, 2, 6, 7, 4)

 (2)、**形参名:用来接收溢出的关键字实参,**后面约定俗成跟kwargs

def func(x,y,**kwargs):
print(x,y,kwargs)
func(x=1,y=2,z=3,zz=7,zzz=9) # 1 2 {‘z‘: 3, ‘zz‘: 7, ‘zzz‘: 9}

 *和**在实参中的应用案例:

def func(x,y,*args):
print(x,y,args)
func(1,2,*[1,2,3]) #1 2 (1, 2, 3)

def func(x,y,**kwargs):
print(x,y,kwargs)
func(x="red",y="blue",z="grey",zz="white") # red blue {‘z‘: ‘grey‘, ‘zz‘: ‘white‘}

 *和**混合使用:

*args必须在**kwargs的前面

def func(*args,**kwargs):
print(args,kwargs)
func(1,2,4,2,a=3,b=7,c=8) # (1, 2, 4, 2) {‘a‘: 3, ‘b‘: 7, ‘c‘: 8}

5、命名关键字参数:

在定义函数时,在*后定义的参数,称之为命名关键字参数。命名关键字实参必须按照key=value的形式传参

def func(x,y,*,a,b):
print(x,y,a,b)
func(11,22,a=33,b=44) # 11 22 33 44

 

 

函数操作

标签:固定   inpu   func   ack   形参   年龄   地址   strong   执行   

原文地址:https://www.cnblogs.com/fdsimin/p/12562749.html

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