目录
- 函数定义
- 什么是函数?
- 定义函数三种形式
- 函数定义的特性
- 函数调用
- 函数返回值
- return的特性:
- 函数的参数
- 有参函数
- 形参
- 位置形参
- 默认形参
- 实参
- 位置实参
- 关键字实参
- 可变长参数
- 形参中的可变长参数 *
- 实参中的可变长参数 *
函数定义
什么是函数?
函数就是一个工具
定义函数三种形式
- 空函数
def 函数名():
pass
def 函数名():
pass
- 无参函数
def 函数名():
代码块...
def 函数名():
代码块...
- 有参函数
def 函数名(x,y):
print(x,y)
def 函数名(x,y):
print(x,y)
函数定义的特性
函数定义过程,只检测语法,不执行代码。
函数调用
调用函数,使用函数。
def guess():
x = 20
y = 30
if x > y:
print(x)
else:
print(y)
guess() # 函数调用. x
def guess():
x = 20
y = 30
if x > y:
print(x)
else:
print(y)
guess() # 函数调用. x
函数返回值
函数体内部代码经过一些逻辑处理得到的结果 就叫返回值
返回值(return):返回一个值(可以是所有数据类型)
返回值 可以拿来做其他事情。
def func():
name = "qinyj"
return name
name = func()
print(name) #qinyj
def func():
name = "qinyj"
return name
name = func()
print(name) #qinyj
return的特性:
- return 返回一个值,如果没有return,默认返回None
- return 会终止函数,不运行下面的代码
- return 返回值可以返回多个值,用逗号隔开。
- return 返回多个值以元组形式接收。
函数的参数
有参函数
形参
形参就是函数在定义阶段内括号中定义的参数,,称之为形式参数,简称形参,本质就是变量名。
位置形参
从左到右依次接收位置实参的值。
def func(x,y):
print(x,y)
def func(x,y):
print(x,y)
默认形参
在函数定义阶段,就默认被赋值。
默认参数的值通常应该是不可变数据类型。
def func(x,y=10):
print(x,y)
def func(x,y=10):
print(x,y)
特点
- 如果没有给参数,使用默认值。
- 如果调用的时候传值,使用传的值。
- 默认形参必须放在位置形参后面。
实参
位置实参
从左到右依次依次传值给位置形参,一一对应,位置形参有多少个,位置实参也得有多少。
# 调用
func(1,2)
# 调用
func(1,2)
关键字实参
在调用函数的时候,按照key=values的形式指定参数传值,成为关键字实参。
# 调用
func(x=1,y=10)
# 调用
func(x=1,y=10)
特定
- 按照参数名传给参数值,函数的参数一般为0-3个。
- 可以打破位置的限制,为指定的形参赋值。
- 关键字实参必须写在位置实参的后面。
可变长参数
可变长参数指的是在调用函数的时候,传入的参数的个数可以不固定。
形参中的可变长参数 *
形参中的* 会将多余的位置实参全部接收,以元组的形式存储,然后把值赋给*后面的变量名,一般用args
可以使用解压缩的形式将值一个一个取出来。a,b,c = args
def sum_self(*args):
res = 0
for num in args:
res += num
return res
res = sum_self(1,2,3,4)
print(res) # 10
def sum_self(*args):
res = 0
for num in args:
res += num
return res
res = sum_self(1,2,3,4)
print(res) # 10
实参中的可变长参数 *
实参中的* ,会将*后面的变量名的值循环去除,打散成位置实参,
def func(x,y,z,*args):
print(x,y,z,args)
lt = [1,2,3]
func(1,2,3,*lt) # 1 2 3 (1, 2, 3)
def func(x,y,z,*args):
print(x,y,z,args)
lt = [1,2,3]
func(1,2,3,*lt) # 1 2 3 (1, 2, 3)