初识函数

一:什么是函数?

生活中的方案:比如一个修理工会事先准备好螺丝刀、锤子等工具,这样在进行修理的过程中,需要用到拧螺丝的功能时就直接拿来螺丝刀使用,需要用到锤击物体的功能时就直接拿来锤子使用,而无需临时制造。这个例子的核心在于’事先准备好工具’,遇到应用场景时’拿来就用’,。
image
在程序中,具备某一功能的‘工具’指的就是函数,‘事先准备工具’的过程即函数的定义,‘拿来就用’即函数的调用。
一:定义函数
函数的使用必须遵循’先定义,后调用’的原则。函数的定义就相当于事先将函数体代码保存起来,然后将内存地址赋值给函数名,函数名就是对这段代码的引用,这和变量的定义是相似的。没有事先定义函数而直接调用,就相当于在引用一个不存在的’变量名’。

def 函数名(参数1,参数2):
	 函数注释
	函数体代码
	return 返回值

二:函数的语法结构

1.def
定义函数的关键字
2.函数名
是函数的名字 相当于变量名
函数名的命名规范与分格遵循变量名
3.参数1,参数2
参数可以没有也可以有多个
表示在使用函数之前需要满足的一些条件
4.函数注释
类似于产品说明书
主要用于介绍函数功能 参数使用 及其他情况
5.函数体代码
函数核心的代码逻辑
6.return返回值
使用函数之后反馈给使用者的结果 可以有也可以没有

image

三:函数的定义与调用

1.函数的使用分为定义阶段与调用阶段,定义函数时只检测语法,不执行函数体代码,函数名加括号即函数调用,只有调用函数时才会执行函数体代码
image

  • 函数的运行
    image

函数的运行
1.函数必须先定义后调用(顺序不能乱)
2.函数在定义阶段只检测语法不执行代码
3.函数在调用阶段啊才会执行函数体代码
4.如何调用函数:
函数名加括号 如果函数在定义阶段有参数则在调用阶段也需要给参数

函数在定义与调用阶段底层原理:
1.在内存空间中申请一块空间存储函数体代码
2.将函数体代码所在的空间地址绑定给函数名
3.函数名加括号则会执行函数体代码

四:函数的分类

函数的分类
分为两大类,四小类

1.内置函数
python解释器自带的(提前给你定义好了 你直接使用即可)
2.自定义函数
程序员自己写的函数
1.无参函数
2.有参函数
3.空函数


无参函数: 在函数定义阶段括号内没有写参数(变量名)   就是无参函数
def my_func():
    print('这个函数很牛逼')

有参函数: 在函数定义阶段括号内写了参数(变量名)      就是有参函数
def my_func(a,b):
    print('这个函数更牛逼')


调用(有参函数)需要在括号给个变量名,给个参数。
my_func(1, 2)


空函数:函数体代码为空(pass ...)
image

五:函数的返回值

函数的返回值
res = len([1, 2, 3, 4, 5])

def my_func():
    print('123')
    print('木头人')
    print('123')
    return [123, 456, 789]
res = my_func()     # 将函数my_func执行之后的反馈结果赋值给变量名res
1.函数体代码没有return关键字的时候 默认返回None
print(res)  # None
2.函数体代码如果只要一个return那么也返回None
print(res)
3.函数体代码遇到return会立刻结束函数的运行
4.函数体代码有return 返回值就是return后面跟的数据(单个数据)
print(res) 123
5.函数体代码有return 并且后面跟了多个数据 那么会自动组织成元组的形式返回
print(res)  (123,456,789)

解压赋值
a, b, c = my_func()
print(a, b,c)

a, *_ = my_func()
print(a, _)



函数的返回值如果是容器类型  那么直接支持解压赋值

image

posted @ 2021-11-12 23:51  AlexEvans  阅读(37)  评论(0编辑  收藏  举报