函数(function)是程序非常重要的组成部分,是计算机执行命令的单元;
所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用;
使用函数可以提高编写的效率以及代码的重用
1. 函数的定义和调用
函数的使用包含两个步骤:
- 定义函数 ------ 在函数中编写代码,实现功能
- 调用函数 ------ 执行编写的代码
1.1. 函数的定义格式
def 函数名():
函数封装的代码
def
是英文define
的缩写;
函数名的命名规则和变量的命名规则要保持一致
1.2. 函数的调用格式
函数名()
2. 函数的参数
函数的参数,可以传递数据给函数内部
参数的作用是增加函数的 通用性
2.1. 参数的定义和调用
定义函数
def 函数名(参数1,参数2):
函数代码
调用函数
函数名(参数1,参数2)
2.2. 参数的使用
需求:定义函数,传递a和b,求a和b的和
python
# 定义函数
def sum(a,b):
res = a + b
print(res)
# 调用
sum(10, 20)
3. 函数的返回值
- 开发中,有时会希望一个函数执行结束后,告诉调用者一个结果,以便调用者对结果做后续处理
- 返回值是函数给调用方提供的结果
- 函数中使用
return
关键字返回结果 - 调用函数一方,可以通过变量来接收函数的返回结果
需求:定义函数返回两个数最大值
python
# 定义函数
def my_max(a, b):
if a > b:
return a
else:
return b
# 调用
res = my_max(10, 20)
print(res)
4. 函数多返回值
函数可以返回多个结果
python
# 定义函数
def func(a, b):
sum = a + b
sub = a - b
return sum, sub
# 调用
sum, sub = func(20,10)
print(sum, sub) # 30, 10
5. 函数的四种类型
函数按照是否有参数以及返回值可以将函数分成四种类型
python
# 1. 无参无返回值
def fun1():
print("无参无返回值")
fun1()
# 2. 无参有返回值
def fun2():
return random.randint(0,10) // 包括0不包括10
fun2()
# 有参无返回值
def fun3(name):
print(name)
fun3("张三")
# 4. 有参有返回值
def fun4(a, b):
return a + b
fun4(1, 2)
6. 函数的形参和实参
6.1. 形参
全称为形式参数
。是在定义函数的时候使用的参数,用来接收调用该函数时传入的参数
def sum(a, b):
return a + b
a
和b
属于形参,形参在函数调用的时候才赋值
6.2. 实参
全称为实际参数
,是在调用时传递给函数的参数
sum(10, 20)
调用sum
函数时传入的10
和20
即是实参
6.3. 形参作用域
作用域指的是变量的可用范围
- 形参的作用域只在函数内,超出函数就不能再使用了
- 作用域可以减少不同函数的命名冲突
7. 局部变量和全局变量
7.1. 局部变量
- 局部变量 ,指的是在函数内部定义的变量
- 局部变量的目的是存储需要临时保存的数据
python
def func1():
# 局部变量
b = 20
print('hello%d' % b)
func1()
print(b) # 报错
注意:
- 不同的函数,可以定义相同名字的局部变量
- 局部变量的作用域只在函数内部
7.2. 全局变量
全局变量是在整个py文件中声明,全局范围内都可以访问
python
# 全局变量
m = 10
n = 20
def func():
# 函数内访问全局变量
print(m)
7.3. 函数内修改全局变量
如果要在函数内部修改全局变量 需要首先使用global关键字将声明全局变量
python
# 定义全局变量
m = 10
def func():
# 使用global声明全局变量
global m
# 将m修改成20
m = 30
print("函数内部 m=", m)
func()
print(m) # 30