函数基础
函数的参数
1. 定义一个函数, my_sum ,对两个数字进行求和计算.
def my_sum():
num1 = 10
num2 = 20
num = num1 + num2
print(num)
函数的返回值
函数的返回值,可以理解为是 函数整体执行的结果是什么
什么上班需要书写返回值: 函数中得到的数据在后续的代码中还要使用,这个时候就应该将这个数据作为返回值返回,以供后续使用
print() ---> None
input() ---> 键盘输入的内容
type() ---> 类型
len() ---> 数据的长度(元素的个数)
在函数中想要将一个数据作为返回值 返回, 需要使用 return 关键字(只能在函数中使用)
作用:
1. 将数据值作为返回值返回
2. 函数代码执行遇到 return, 会结束函数的执行
局部变量
局部变量: 在函数内部(函数的缩进中)定义的变量,称为是局部变量
特点:
1. 局部变量只能在当前函数内部使用, 不能在其他函数和函数外部使用
2. 在不同函数中,可以定义名字相同的局部变量, 两者之间没有影响
3. 生存周期(生命周期, 作用范围)--> 在哪 能用
在函数被调用的时候,局部变量被创建, 函数调用结束, 局部变量的值被销毁(删除), 不能使用
所以函数中的局部变量的值, 如果想要在函数外部使用, 需要使用 return 关键字, 将这个值进行返回
def func1():
num = 10 # num 就是局部变量
print(f"func1 函数中 {num}")
def func2():
num = 100 # 可以在不同函数中定义名字相同的局部变量,没有影响
print(f"func2 函数中 {num}")
全局变量
定义位置: 在函数外部定义的变量, 称为是 全局变量
特点:
1. 可以在任何函数中读取(获取) 全局变量的值
2. 如何在函数中存在和全局变量名字相同的局部变量, 在函数中使用的是 局部变量的值(就近)
3. 在函数内部想要修改全局变量的引用(数据值), 需要添加 global 关键字, 对变量进行声明为全局变量
4. 生命周期
代码执行的时候被创建, 代码执行结束,被销毁(删除)
g_num = 10 # 全局变量
def func1():
print(f'func1 中 {g_num}') # 在函数中可以读取全局变量的值
def func2():
g_num = 20 # 定义局部变量, 不会影响全局变量
print(f'func2 中 {g_num}')
def func3():
global g_num # 这个函数中使用的 g_num 都是全局变量, 写在函数的第一行
g_num = 30 # 修改了全局变量
print(f'func3 中 {g_num}')
# func1() # 10
# func2() # 20
# func1() # 10
# func3() # 30
# func1() # 30
print(g_num)
返回值- 函数返回多个数据值
函数中想要返回一个数据值, 使用 return 关键字
将 多个数据值组成容器进行返回, 一般是元组(组包)
def calc(a, b):
num = a + b
num1 = a - b
return num, num1
# 写法一
result = calc(10, 5)
print(result, result[0], result[1])
# 写法二, 直接拆包
x, y = calc(20, 10)
print(x, y)
函数参数
函数传参的方式
位置传参:
在函数调用的时候, 按照形参的顺序, 将实参值传递给形参
关键字传参:
在函数调用的时候, 指定数据值给到那个形参
混合使用
1. 关键字传参必须写在位置传参的后面
2. 不要给一个形参传递多个数据值
def func(a, b, c):
print(f'a: {a}, b: {b}, c: {c}')
# 位置传参
func(1, 2, 3)
# 关键字传参
func(a=2, b=3, c=1)
# 混合使用
func(1, 3, c=5)