函数定义函数(function)是程序非常重要的组成部分,是计算机执行命令的单元;
所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用;
使用函数可以提高编写的效率以及代码的重用
1. 函数的定义和调用
函数的使用包含两个步骤:
- 定义函数 —— 在函数中编写代码,实现功能
- 调用函数 —— 执行编写的代码
1.1 函数的定义格式
函数基本使用
def 函数名():
函数封装的代码
def
是英文define
的缩写;
函数名的命名规则和变量的命名规则要保持一致
1.2 函数的调用格式
函数名()
# 定义函数
def say_hello():
print('hello world')
print('hello world')
print('hello world')
# 调用函数
say_hello()
2. 函数的文档注释
函数名并不能完全表示出函数的含义,定义函数的时候就需要给函数加上注释。
函数的注释就是文档注释,以后可以根据此内容查看函数使用说明,或用于生成API文档。
注释的规则和格式如下:
- 注释应该定义在函数的下方
- 使用三对引号注释
- 调用函数时, 鼠标悬浮在函数名上可以查看函数的说明信息
def say_hello2():
"""
这是给林青霞打招呼的方法
:return:
"""
print('hello 林青霞')
3. 函数的参数
函数的参数,可以传递数据给函数内部
参数的作用是增加函数的 通用性
# 定义函数
def 函数名(参数1, 参数2):
函数代码
# 调用函数
函数名(参数1, 参数2)
def sum(a,b):
"""
这个函数是求两个数据的和
:param a: 第一个数据
:param b: 第二个数据
:return: a和b的和
"""
result = a + b
print(result)
# 调用
sum(10,20)
4. 函数的返回值
- 开发中,有时会希望一个函数执行结束后,告诉调用者一个结果,以便调用者对结果做后续处理
- 返回值是函数给调用方提供的结果
- 函数中使用
return
关键字返回结果 - 调用函数一方,可以通过变量来接收函数的返回结果
# 定义函数
def my_max(a,b):
if a > b:
return a
else:
return b
# 调用函数
max_value = my_max(10,20)
函数可以多个返回值
def calc(a, b):
'''
求a+b以及a-b的结果
:param a:
:param b:
:return: 结果的元组
'''
sum = a + b
sub = a-b
return sum, sub
上面函数同时返回了两个数的和以及两个数的差
返回的结果会自动组包成为一个元组数据,接收的时候可以分别接收sum、sub
# 分别接收和以及差
sum, sub = calc(10, 20)
5. 函数的四种类型
函数按照是否有参数以及返回值可以将函数分成四种类型
无参无返回值
"""
无参无返回值
"""
def sumNum():
print("sum = ")
sumNum()
有参无返回值
"""
def add(形参):
add(实参)
"""
def add(a, b):
print(a + b)
add(10, 20)
有参有返回值
"""
斐波那契数列
1 1 2 3 5 8 13
"""
def fab(n):
if n <= 2:
return 1
return fab(n - 1) + fab(n - 2)
result = fab(7)
print(result)
6. 局部变量和全局变量
局部变量
局部变量,指的是在函数内部定义的变量
局部变量的目的是存储需要临时保存的数据
def func1():
# 局部变量
b = 20
print('hello%d' % b)
注意:
不同的函数,可以定义相同名字的局部变量
局部变量的作用域只在函数内部
全局变量
全局变量是在整个py文件中声明,全局范围内都可以访问
# 全局变量
m = 10
n = 20
def func():
# 函数内访问全局变量
print(m)
函数内修改全局变量
如果要在函数内部修改全局变量 需要首先使用global关键字将声明全局变量
# 定义全局变量
m = 10
def func():
# 使用global声明全局变量
global m
# 将m修改成20
m = 30
print("函数内部 m=", m)