4、局部变量
def func():
# 定义局部变量
num = 100
print(num)
def func1():
# 定义局部变量
num = 200 # 两个num是没有任何关系的
print(num)
函数调用
func()
func1()
探究:局部变量能否在函数外部使用
print(num) # 代码报错,局部变量不能在函数外部访问
5、全局变量 (globe)
globe方法:可以让局部变量在全局变量中使用,放在修改之前,(类似定义)
globe 变量名
定义全局变量
g_num = 100
1. 能否在函数内部访问全局变量? ====> 可以直接访问全局变量的值
def func1():
print(g_num)
2. 能否在函数内部修改全局变量的值? ===> 不能直接修改全局变量的值
def func2():
# g_num = 200 # 这里不是修改全局变量的值,是定义一个局部变量,和全局变量的名字一样而已
# 想要在函数内部修改全局变量的值,需要使用 global 关键字声明这个变量为全局变量
global g_num # 之后g_num 可以被修改了
g_num = 300
print(g_num)
func1() # 100
func2() # 300
func1() # 300
6、函数的返回值
def add(a, b):
c = a + b
# 想要将求和的结果 c, 返回,即函数外部使用求和的结果, 不在函数内部打印结果
return c
print(f'求和的结果是{c}') # 函数遇到return就结束了,不会执行return之后的代码
result = add(100, 200)
print(f'函数外部获得了求和的结果{result}')
print(add(10, 30))
7、函数的多个返回值
def func(a, b):
c = a + b
d = a - b
# 需求: 想要将 c 和 d 都进行返回
# 思考: 容器可以保存多个数据值, 那就可以将 c 和 d 放到容器中进行返回
# return [c, d]
# return (c, d)
# return {'c': c, 'd': d}
# return {0: c, 1: d}
return c, d # 默认是组成元组进行返回的
result = func(10, 20)
print(f"a+b的结果是{result[0]}, a-b的结果是{result[1]}")