Python函数的基础知识
函数的本质
'''
函数可以看成是工具
提前定义好之后可以反复使用
1、 有函数跟没有函数的区别
没有函数(没有工具)
每次使用某个工具的时候都需要现场制作
有函数(有工具)
提前准备好工具 用的时候直接使用即可
※:函数必须要先定义 之后才能使用
'''
# 函数的定义(提前准备工具的过程)
def my_func():
pass
# 函数的使用(开始选择工具并使用)
my_func() # 在IT行业使用函数时更习惯称为 调用函数 函数调用
函数的语法结构
def 函数名(参数1,参数2):
'''函数注释'''
函数体代码
return 返回值
'''
1、def
是定义函数的关键字
2、函数名
跟变量名的命名一致 尽量做到见名知意
ps:获取用户名信息
def get user info():
3、括号
在定义函数的时候函数名后面必须跟括号
4、参数
定义函数括号内可以写参数(个数不固定)也可以不写参数
用于接收外界传递给函数体代码内部的数据
5、函数注释
类似于说明书 用于介绍函数的主体功能和具体用法(可写可不写)
6、函数体代码
整个函数最核心的区域(逻辑代码)
7、return
控制函数的返回值
ps:调用函数之后返回值如何理解
使用函数之后有没有相应的反馈
'''
函数的定义与调用
1、函数必须先定义后使用
定义函数的代码必须要在调用函数的代码之前先运行即可
2、定义函数使用def关键字 调用函数使用函数名加括号(可能需要添加额外的参数)
3、函数在定义阶段只检测函数体代码语法 不执行函数体代码的代码
只有在调用阶段才会真正的执行函数体代码
4、函数名是什么?函数名绑定的是一块内存地址 里面存放了函数体代码
要想运行该代码 就需要调用函数>>>:函数名加括号
'''
函数名加括号执行优先级最高(定义阶段除外)
'''
1、内置函数
解释器提前帮你定义好的函数 用户可以直接调用 len()
'''
内置函数可以直接调用
但是数据类型的内置方法(函数)必须使用数据类型整点的方式才可以调用 相当于是数据类型独有的一些内置方法
'''
2、自定义函数
1、空函数
没有函数体代码使用pass顶替 暂时没有任何功能
主要用于前期项目搭建 提示主要功能
def func():
pass
2、无参函数
函数定义阶段括号内没有填写参数
def func():
print('from func')
ps:无参函数直接函数名加括号即可调用
3、有参函数
函数定义阶段括号内填写参数
def func(a, b):
print('from func')
ps:有参函数调用需要函数名加括号并且给数据值
'''
返回值就是调用函数之后产生的结果 可有可无
获取函数返回值的方式是固定的
变量名 =函数()
上述有则获取 没有则默认接收None
'''
# 1.函数体代码没有return关键字:默认返回None
# def func():
# print('from func')
#
#
# res = func()
# print(res) # None
# 2.函数体代码有return关键字:后面不写 也返回None
# def func():
# print('from func')
# return
# res = func()
# print(res) # None
# 3.函数体代码有return关键字:return后面写什么就返回什么(如果是数据值直接返回 如果是变量则需要找到对应的数据值返回)
# def func():
# print('from func')
# return 123
# res = func()
# print(res)
# def func():
# print('from func')
# name = 'Curry'
# return name
# res = func()
# print(res) # Curry
# 4.函数体代码有return关键字并且后面写了多个数据值(名字) 逗号隔开:默认情况下会自动组织成元组返回
# def func():
# return 1, 2, 3, 4
# res = func()
# print(res) # (1, 2, 3, 4)
# 5.函数体代码遇到return关键字会立刻结束函数体代码的运行
# def func():
# print('好好学习')
# return 321
# print('天天想上')
# func() # 好好学习
'''
1.形式参数
函数在定义阶段括号内填写的参数 简称为'形参'
2.实际参数
函数在调用阶段括号内填写的参数 简称为'实参'
在函数调用阶段形参会临时与实参进行绑定 函数运行结束立刻解除
>>>:动态绑定 动态解除
'''
'''
1.位置形参
在函数定义阶段括号内从左往右依次填写的变量名称之为位置形参
2.位置实参
在函数调用阶段括号内从左往右依次填写的数据值称之为位置实参
"""
1、实参可以是数据值也可以是绑定了数据值得变量名
2、位置形参传值得时候必须个数一致多少均不行
"""
'''
关键字实参
在函数调用阶段括号内以什么等于什么的形式传值为 关键字实参
'''
1.锁定给形参传值(打破了位置的限制)
2.位置实参必须在关键字实参的前面
小诀窍:无论是形参还是实参 都遵循短的(简单)在前面 长的(复杂)在后面
3.同一个形参在一次调用中只能传一次值
# def func(a, b):
# print(a, b)
#
# func(1, 2)
# func(b=1,a=2)
# func(b=1,2)
# func(2,b=1)
# func(666,a=1)
'''
默认值形参
在函数定义阶段括号内以什么等于什么的形式填写的形参称之为默认值形参
# 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')
'''
1.在函数定义阶段就给形参绑定值 后续调用阶段就可以不传
2.调用阶段不传值就使用默认的 传了就用传了的
ps:还需要遵循前面总结的规律(简单的在左边 复杂的在右边)
'''
可变长形参
可以打破形参与实参的个数限制 随意传值
def func(*x):
print(x)
'''
*在形参中的作用
接收多余的位置参数并组织成元组的形式赋值给*后面的变量名
**在形参中的作用
接收多余的关键字参数并组织成字典的形式赋值给**后面的变量名
'''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)