一、局部变量(在一个函数内部定义变量只能在这个函数可以用,在其他函数用不了)
def add():
num = 100
print(num)
def mult():
print(num)
add() - 正确输出num 为 100
mult() - 错误, 见局部变量定义
二、全局变量(在函数外部定义变量,在任何函数动能调用)
- 在函数内部,如果局部变量与全局变量变量名一样,则数内部调用局部变量。
num = 100
def add():
num = 99
print(num)
add() 输出为 99
- 如果想在函数内部改变全局变量,需要在前面加上global关键字,在执行函数之后,全局变量值也会改变。
num = 100
def add():
global num
num = 99
print(num)
def mult():
print( num)
add()
mult()
- 列表、字典可以直接做全局变量,如果对其修改时不用加global声明。
li = ['a', 'c', 'd']
def add():
li.append('e')
print(li)
add() ['a', 'c', 'd', 'e']
三、经典面试题 (下面这个面试题,当年我面试时做了三遍,推荐给大家)
其实是个错误题:错误原因赋值前引用了局部变量num
num = 100
def add():
num += 2
print(num)
add()