函数的定义与调用
假设我们有一串代码实现了某个特定功能,当我们需要将该功能运用到其他地方时,我们就需要找到该代码将其复制一遍,这样既不能使代码更简洁,又不够高效,为了更高效利用具有特定功能的代码段,我们可以使用函数来解决。当我们在函数中写好具有某些特定功能的代码段后,我们可以在别的地方直接将该函数调用过来帮助我们实现相同功能。例如,下面代码就定义了一个可以实现a+b的结果函数,当我们想计算8+9的结果时,就可以直接调用该函数输出其运算结果。
# 定义一个可以计算a+b的结果的函数
def sum(a, b):
c = a + b
return c
# 调用该函数,并传入参数
c = sum(8, 9)
print(c)
什么是函数:
函数是提前组织好的,可重复利用的,具有特定功能的代码段。
函数定义的格式:
def 函数名(形式参数):
函数体
return 返回值
函数调用的格式:
用于接收函数返回值的变量名 = 函数名(实际参数)
函数定义和调用的注意事项:
1.函数先执行再调用,不调用不执行
2.函数每调用一次,执行一次
3.函数的参数和返回值是否需要根据需求决定
4.函数定义时有形参,在调用时必须传入实际参数
5.函数定义时有返回值,在调用时可以定义一个变量接收该返回值内容
6.函数定义时没有return 返回值,默认返回None
函数的参数
函数中参数的作用:
在函数运行时,接收外部传入的数据
形式参数:
函数定义时提供的参数为形式参数,简称形参
实际参数:
函数调用时传入的参数为形式参数,简称实参
tips:
1.函数不一定需要参数
2.函数中可以有多个参数,用逗号分隔
3.函数中形参与实参一一对应
无参无返回值的函数案例:
# 定义函数
def w_c():
print("这是一个无参无返回值的函数")
# 调用函数
w_c()
有参无返回值的函数案例:
# 定义一个有参无返回值的函数
def sum(a, b):
c = a + b
print(c)
# 调用该函数
sum(9,10)
函数的返回值
函数中的返回值:
返回值是函数执行完后给调用者的结果。
返回值None:
Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'>,无返回值的函数返回的就是None这一字面量。
注意事项:
1.函数体遇到return就结束,不会再执行return后的结果
2.不使用return语句默认返回None
有参有返回值的函数:
# 定义一个有参有返回值的函数
def sub(a, b):
c = a - b
return c
# 调用该函数
get_sub = sub(8, 9)
print(get_sub)
函数的说明文档
函数说明文档的作用:
函数的说明文档可以用于辅助理解函数。
函数说明文档的格式(说明文档写在函数体之前):
"""
函数说明
:param x: 解释参数x:param y: 解释参数y
:return: 解释返回值
"""如何查看函数的说明文档:
在PyCharm中,可以通过鼠标悬停,查看函数的说明文档
给函数加说明文档的案例:
def sub(a, b):
"""
该函数计算差
:param a: 被减数
:param b: 减数
:return:差
"""
c = a - b
return c
函数的嵌套
什么是函数的嵌套调用:
函数的嵌套是指一个函数中调用了另一个函数。
函数嵌套调用的执行流程:
函数A中执行到调用函数B的语句, 会将函数B全部执行完成后,继续执行函数A的剩余内容
函数嵌套执行顺序测试的案例:
# 定义函数b
def a():
print("这是函数A")
# 定义函数b
def b():
print("--这是函数B的开始--")
a()
print("--这是函数B的结束--")
# 调用函数b
b()
执行结果
变量的作用域
局部变量:
定义在函数体内部的变量,只在函数体内部生效。当函数调用完成后,则销毁局部变量。
全局变量:
在函数体内、外都能生效的变量。
global关键字:
global关键字可用于在函数内定义全局变量。
格式:global 变量名
使用global关键字的案例:
# 先定义函数
def show1():
global a
a = 300
print(a)
def show2():
print(a)
# 全局变量
a = 200
# 再调用函数
show1()
show2()
print(a)