函数

本贴最后更新于 386 天前,其中的信息可能已经东海扬尘

一、函数的定义

一段可以被另一端代码引用的代码称为函数。通过函数,可以让一段代码被另一段代码引用

二、语法

def test_01():

pass
return "函数返回值"

备注:如果有函数返回值就写return,如果没有return可以不写

三、函数返回值

1、函数返回值放在return关键字后面

def test_01():

name = 123
	return name

调用函数

res = test_01()

print(res)

结果:123

2、如果return后什么都不写,或者没有return,默认返回None

def test_01():

name = 123
	return

#函数调用

res = test_01()

print(res)

结果:None

或者

def test_01():

name = 123

#函数调用

res = test_01()

print(res)
结果:None

3、函数返回值可以写也可以不写,需要返回值就写,不需要可以不写

4、可以返回具体的值,也可以返回变量或者对象(函数,类)

5、retrun是函数结束的标志

四、注意:

1、函数定义用def关键字

2、函数体需要和def关键字有一个缩进(1个tab键,相当于4个空格)

五、函数调用

1、函数名()

def test_01():

name = 123
	return name

#函数调用

res = test_01()

print(res)

2、类里面:self.函数名()

3、类外面:类实例.函数名()

六、函数的参数

1、形参:占个坑,不是具体的参数,表示这里有值

2、实参:函数调用的时候,给形参传的具体的值

def add(x,y): #x,y就是形参

return x + y

#函数调用

result = add(1,3)# 1,3就是实参

print(result)

3、参数分类

(1)必须参数

函数调用时必须传的参数,叫必须参数,由函数定义者来决定是否需要必须参数,位置和值要一一对应,必须参数不传会报错

def add(x,y):

return x + y

#函数调用

result = add(1,3)# 1,3必须传,否则,会报错

print(result)

(2)关键字参数

传递参数时,需要用关键字标明,和位置没关系,函数调用的时候,传递参数时使用【形参名=实参】的方式传递关键字参数

def info(name,age):

print(f"my name is {name},age is {age}")

#函数调用

info(age = 18,name="cancan")#通过关键字传参,可以不用关心位置

(3)默认参数

在定义函数时,必须参数直接给了值

调用函数时,有默认参数如果传了值,就用传的值,没传值就用默认值

定义函数时,默认参数必须在必须参数的后面,错误写法def info(age=18,name)

def info(name,age=18):

print(f"my name is {name},age is {age}")

#调用

info(age = 20,name="cancan")#用传的值

info(age,name="cancan")#用默认值

(4)不定长参数

调用时,不知道需要传多少参数进来

*args:不定长参数,接收多个参数,组成一个元组

**kwargs:不定长参数,接收多个关键字参数,组成一个字典

例子:

def info(*args,**kwargs): # 两个位置不能换

print(args)

	print(kwargs)

#调用

my_info = info("cancan",20,175,"黄头发")#会把你传进去的参数放在一个元组中

结果:

('cancan', 20, 175, '黄头发')
{}

my_info = info("cancan",20,175,"黄头发",name = "cancan",age=20)

结果:

('cancan', 20, 175, '黄头发')
{'name': 'cancan', 'age': 20}

4、解包(拆包)

*list

**dict

例子1:

def info(*args):

print(args)

test_list = ["cancan","20","180"]

调用函数

info(*test_list)

相当于 info("cancan","20","180")

结果:('cancan', '20', '180')

例子2:

def info(**kwargs):

print(kwargs)

#调用

test_dict={"name":"cancan","age":"20","hight":"180"}

info(**test_dict)

相当于

info(name="cancan",age=20,hight=180)

结果:{'name': 'cancan', 'age': '20', 'hight': '180'}

备注:只要是可迭代对象都可以拆包

回帖
请输入回帖内容 ...