函数的本质
函数的本质其实就是工具,提前定义好函数之后可以反复使用
需要注意的是:函数必须先定义 之后才能调用
函数的定义及调用
定义: def my_func():
pass
调用: my_func()
函数的语法结构
def 函数名自定义 (参数1,参数2):
函数体代码
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关键字会立刻结束代码体运行
def func():
print('我在上面')
return 123
print('我在下面')
func()
函数参数
参数是用于接收外界传递给函数代码体内部的数据
分为 - 形式参数:函数在定义阶段括号内填写的参数,可以理解为变量名,简称形参
- 实际参数:调用阶段括号内填写的参数,可以理解为变量值,简称实参
位置参数
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)
func(11,2,2,3,3,4)
*号表示接受多余的位置参数并组织成元组的形式赋值给*号后面的变量名
------------
def func(**y):
print(y)
func()
def func(**y):
print(y)
func(name='summer')
**号表示接受多余的关键字参数并组织成字典的形式赋值给**号后面的变量名
**------------恢复内容结束------------**
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?