1. 函数
1.1. 什么是函数
函数是具有名字的可重复执行的代码块,通过函数名字()调用执行。
函数可以看作为完成一项功能的代码块,只有定义了才能够执行。
1.2. 简单函数的定义
1.2.1. 语法
def 函数名():
功能代码
注意:
1. def是Python中定义函数的语法
2. 函数名是该功能代码的标识,函数名字要遵循标识符的命名规则
3. 功能代码被作为一个语句块出现,必须是缩进
1.2.2. 案例1(九九乘法表)
你会发现当我们再次执行以上代码时,结果无法输出九九乘法表了,为什么呢?
1.3. 函数的调用
1.3.1. 语法
函数名()
注意:
1. def 函数():只是用来定义函数,而不是执行函数,函数只有调用才会执行。
2. 函数必须先定义后调用否则将会出现错误。
3. 如果想多次执行函数,就多次调用。
1.3.2. 案例1(多次调用九九乘法表执行)
1.3.3. 案例2(介绍自己)
1.3.4. 为什么要使用函数呢?
因为函数可以封装一个功能,该功能可以被多次使用从而达到代码别重复使用。函数是代码封装和代码复用的体现。
1.4. 函数参数
函数的参数分为形式参数(也称为形参)和实际参数(也称为实参)
1.4.1. 形式参数定义
形式参数写在函数定义时,出现在函数名的()里面
def 函数名(形式参数1,形式参数2...):
功能代码
1.4.2. 为什么要用形式参数(形参)
函数是用来完成一个功能,但是要完成此功能时有未知数据参与,只有在使用该功能时未知数据才能够确定,那么就需要通过形式参数占位。
1.4.3. 案例1(任意乘法表)
9 和 5 就是作为实际参数,将其赋值给num变量。 调用函数并且传入实际参数的过程就将实际参数赋值给形式参数变量并且执行函数中代码的过程。
1.4.4. 案例2(完成某人的自我介绍)
需求:
定义一个自我介绍的功能。
分析:
设计自我介绍功能时并不知道未来哪个人使用该功能,所以使用形式参数占位
代码实现:
执行效果:
1.4.5. 案例3(ATM机取钱)
需求:
定义一个模拟ATM机取钱功能。
分析:
设计ATM机时并不知道未来输入什么账号和密码去多少钱,所以使用形式参数占位
代码实现:
执行过程: 实际参数分别赋值给形式参数后,函数才执行。
1.5. 函数返回值
1.5.1. 函数返回值定义
如果函数执行之后的结果数据需要被其他程序所使用,可以通过return关键字返回函数执行的结果(返回值)。 将结果返回到函数被调用的位置。
def 函数名(形式参数1,形式参数2...):
功能代码
return 执行结果(返回值)
调用执行后的结果:
结果 = 函数名(实际参数1,实际参数2...)
解释: 将实际参数1,实际参数2赋值给形式参数1,形式参数2后,再执行函数代码块。函数的执行结果通过return关键字返回到函数调用位置,然后再赋值给 结果 变量
1.5.2. 为什么用使用返回值
函数功能代码执行结果需要被后续程序继续使用。
1.5.3. 案例1(加法)
需求:
定义一个两个数字相加功能并且打印出该功能的运行结果。
分析:
1. 定义加法功能时并不知道是对哪两个数字进行相加,所以使用两个形式参数占位。
2. 该功能的执行结果需要在后期使用(打印),所以将运算结果返回并且赋值给另外一个变量
代码实现:
执行结果:
函数执行结果为6
1.5.4. 案例2(ATM机)
执行结果:
1.6. 定义三步曲
def 函数名(形式参数1,形式参数2...):
功能代码
return 执行结果(返回值)
调用执行后的结果:
结果 = 函数名(实际参数1,实际参数2...)
第一步:确定函数名字
根据函数的功能语义为函数命名,名字具备见名知意。
第二步:确定函数形式参数
站在函数内部(我自己是该功能)考虑问题: 完成该功能时是否有未知数据参与,如果有请使用形式占位,等待未来真正的使用者传递实际参数。
站在函数外部(要使用该功能)考虑问题: 当真正使用该功能时才确定需要什么参数。
第三步:确定函数返回值
站在函数外部(要使用该功能)考虑问题: 是否关心该功能的执行结果被其他程序所使用,如果需要则返回该直接结果。如果不需要再不返回。
1.6.1. 案例1(求两个数的最大值)
需求:
比较两个数的最大值的功能并且在最大值的基础上添加10后打印出来。
分析:
1. 确定函数名: 因为比较最大值所以使用max作为函数名字。
2. 确定形式参数: 比较两个未知的数据的参与,所以需要两个形式参数占位并且真正的使用该功能时才知道比较那两个数据
3. 确定返回值: 函数执行之后的结果还需要继续使用,在结果的基础上加10并且打印
代码实现:
1.1.1. 案例2(个税计算器简单)
需求:
比较两个数的最大值的功能并且在最大值的基础上添加10后打印出来。
分析:
4. 确定函数名: 因为比较最大值所以使用max作为函数名字。
5. 确定形式参数: 比较两个未知的数据的参与,所以需要两个形式参数占位并且真正的使用该功能时才知道比较那两个数据
6. 确定返回值: 函数执行之后的结果还需要继续使用,在结果的基础上加10并且打印