一、函数的基本知识
1、函数:
函数是组织好的、可以重复使用的,用来实现特定功能的代码段。
2、作用:
可以得到一个针对特定需求的、可供重复利用的代码段,提高程序的复用性,减少重复性代码,提高开发效率。
3、定义:
def 函数名 (传入参数) :
函数体
return 返回值
4、函数的调用:
函数名(参数)
5、注意事项:
- 参数如果不需要,可以省略
- 返回值如果不需要,可以省略
- 函数必须贤定义后使用
6、示例:
# 定义一个函数
def say_hello():
print('hello! i am Seventeeen')
# 调用say_hello函数
say_hello()
二、函数的传入参数
1、传入参数的功能:
在函数进行计算的时候,接受外部(调用时)提供的数据。
2、示例:
# 定义一个函数
def addition(x,y):
result = x + y
print(f"{x} + {y} = {result}")
# 调用addition函数
addition(1,2)
print("===========")
x = int(input())
y = int(input())
addition(x,y)
3、语法解析
- 在函数的定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数。参数之间使用逗号进行分隔。
- 函数调用中,提供1和2,称之为:实际参数(实参),表示函数执行时真正使用的参数值。传入的时候,按照顺序传入数据,使用逗号分隔
4、注意:
- 传入参数的数量是不受限制的。(可以不使用参数,也可以使用任意N个参数)
三、函数的返回值
1、定义:
所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果。
2、语法格式:
def 函数 (参数)
函数体
return 返回值
变量 = 函数(参数)
3、示例:
def addition(x,y):
result = x + y
return result
# 调用addition函数
n = addition(1,2)
print(n)
3、注意:
函数体在遇到return关键字后就结束了,所以写在return后的代码不会执行
4、None 类型:
在Python中有一个特殊的字面量:None,其类型是:<class'NoneType'>。无返回值的函数,实际上就是返回了:None这个字面量。
(1)作用:
- 用在 if 判断中。在 if 判断中,None等同于False,一般用于在函数中主动返回None,配合 if 判断做相关的处理
- 用于声明无内容的变量上。定义变量,但暂时不需要变量有具体值,可以用None来代替。
(2)示例:
def check(age):
if age >= 18:
return "验证成功"
else:
return None
result = check(17)
if not result:
# 进入if表示result是None值,也就是False
print("你是未成年")
# None 用于声明无初始内容的变量
name = None
五、函数说明文档
ps:红色框内的就是函数的说明文档
注意:在编写代码的时候,可以通过鼠标的悬停,查看条约函数的说明文档
六、函数的嵌套调用
所谓函数的嵌套调用指的是一个函数里面又调用了另一个函数
def fun_2():
print("方法2")
def fun_1():
print("方法1")
fun_2()
print("方法3")
# 调用fun_1函数
fun_1()
从中可以看出执行的顺序,是从调用的函数开始,从上向下依次的执行。
七、变量的作用域
变量的作用域值得是变量的作用范围(变量在哪里可用,在哪里不可用)。主要分为两类:局部变量和全局变量。
(1)局部变量:
1)定义:
定义在函数体的内部的变量,即只在函数体内部生效。
2)作用:
在函数体内部,临时保存数据,即函数调用完成后,则立刻销毁局部变量。
3)演示
def test():
num = 17
print(num)
test()
print(num)
注意:出了函数体,局部变量就失效了。
(2)全局变量:
1)定义:
指的是在函数体内、外都能生效的变量。
2)示例:
num = 7
def test():
print(num)
test()
print("====")
print(num)
(3)global 关键字 :
1)在函数内部修改全局变量:
num = 7
def test_1():
print(num)
def test_2():
num = 17
print(num)
test_1()
test_2()
print(num)
ps:根据输出的结果我们可以发现,在函数内部修改全局变量,只会修改该函数内部,此变量的值,并不会对全局变量的值进行改变,当该函数的调用完成后,全局变量的值依旧是原来的值。如果要想在函数的内部修改全局变量的值并且在函数调用完成后,全局变量的值保证是修改后的值,这个时候就要使用到 global 关键字。
2)作用:
在函数内部,声明变量为全局变量。
3)示例:
num = 7
def test_1():
print(num)
def test_2():
global num # 设置内部变量为全局变量
num = 17
print(num)
test_1()
test_2()
print(num)
代码解释:程序按照调用的顺序依次的执行,先调用test_1方法,此时全局变量num还是等于7,则会输出7;随后调用test_2方法,此时使用了global 关键字,将全局变量(num)的值更改为17,则第二个的输出的结果为17;最后执行print(num)语句,但是此时num的值已经被修改为了17,所以再次输出17。