函数的本质
函数的本质其实就是工具,提前定义好函数之后可以反复使用
需要注意的是:函数必须先定义 之后才能调用
函数的定义及调用
定义: def my_func():
pass
调用: my_func()
#函数名加括号的时候执行优先级最高
函数的语法结构
def 函数名自定义 (参数1,参数2):
函数体代码
return
# def是python函数的关键字 固定格式不可更改
# 括号内的参数可写可不写 但是括号必须得有
# 函数在定义阶段是不执行函数体代码,只检测代码体的语法。只有调用函数的时候才会执行函数体代码
# return返回值是调用函数以后有没有产生结果
函数的分类
1.内置函数:系统自带的函数 可直接调用
len()
2.自定义函数 - 空函数代码体的直接使用pass顶替
def my_func():
pass
- 无参数的函数
def my_func():
函数体代码
my_func()
#函数调用直接加括号就可以
- 有参数的函数
def my_func(a,b):
函数体代码
my_func(1,2)
#函数调用必须有对应的参数值才可以调用
返回值 return
获取返回值的方式是固定的:
变量名=函数()
- 函数体代码没有return关键字默认返回值是None
def func():
print('from func')
res = func()
print(res)#None
- 函数体写了return 后面不加内容的话 返回值也是None
def func():
print('from func')
return
res = func()
print(res)#None
- 函数体写了return 后面加内容的话 返回值就是加的内容
def func():
print('from func')
hobby = 'study'
return hobby
res = func()
print(res)#study
return关键字后面写了多个数据值用逗号隔开:默认情况下回自动组织成元组返回
def my_func():
return 1,2,3
res = my_func()
print(res) #(1,2,3)
函数体代码遇到return关键字会立刻结束代码体运行
函数参数
参数是用于接收外界传递给函数代码体内部的数据
分为 - 形式参数:函数在定义阶段括号内填写的参数,可以理解为变量名,简称形参
- 实际参数:调用阶段括号内填写的参数,可以理解为变量值,简称实参
位置参数
1. 位置形参:从左往右依次填写的变量名
2. 位置实参:从左往右依次填写的数据值,也可以是绑定了数据值的变量名
# 给位置形参传值的时候必须个数一致!不可多或者少
def func(a, b):
print(a, b)
func(1,2)
关键字参数
在函数调用的阶段括号内以什么等于什么的实参传值形式称为关键字实参
#无论是形参还是实参 ,必须是短的简单的值在前面,长的复杂的值在后面
#位置实参必须在关键字实参的前面
#同一个形参一次调用只能传一次值
def func(a, b):
print(a, b)
func(a=1,b=2)
def func(a, b):
print(a, b)
func(1,b=2)
默认值参数
在函数调用的阶段括号内以什么等于什么的形式填写的形参称为默认值形参
定义阶段就设置好的形参,如果想要修改的话直接在实参里重新定义即可,否则即默认定义值
def register(name, age, gender='male'):
print(f"""
-------------info-----------
name:{name}
age:{age}
gender:{gender}
----------------------------
""")
register('jason',18)
register('oscar',28)
register('jerry',38)
register('lili',18,'female')
简单的在左边 复杂的在右边
可变长参数
可变长形参,可以任意传值,没有个数限制
关键词 *
def func(*x):
print(x)
*号表示接受多余的位置参数并组织成元组的形式赋值给*号后面的变量名
------------
def func(**y):
print(y)
func() # {}
def func(**y):
print(y)
func(name='summer') # {'name':'summer'}
**号表示接受多余的关键字参数并组织成字典的形式赋值给**号后面的变量名
**------------恢复内容结束------------**
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/272505.html