目录
简单容易记住的点来说:局部变量放在函数内,作用域只在函数内;全局变量全局可用,可以理解为所有人都可以用它,公用的
举个例子:公厕和私家厕:公厕就是全局变量,大家都可用;私家厕的话就是家人可用
局部变量和全局变量
一.局部变量
函数例子
def discount(price,rate):
final_price = price * rate #这里的final_price是局部变量
return final_price
old_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
new_price = discount(old_price,rate)
print('打折后的价格是:',new_price)
print('这里试图打印局部变量final_prince的值:',final_price)
final_prince这个变量就是局部变量,只在函数里面;只在discount()函数内可用,放到外面就用不上了
所以最后的print('这里试图打印局部变量final_prince的值:',final_price)会进行报错,因为在全局上没有对final_prine进行定义
二、全局变量
函数例子
def discount(price,rate):
final_price = price * rate
old_price=50 #python新建一个old_prince 的局部变量
print('修改后old_price的值是1:',old_price)
return final_price
old_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
new_price = discount(old_price,rate)
print('修改后的old_price的值是2:',old_prince) #这里的old_price全局变量
print('打折后的价格是:',new_price)
作用域更大:意思是作用的范围更大。使用全局变量一定要小心,因为改了一个地方,全局都会发生变化。全局差不多就是全范围的意思
函数内去修改全局变量的话,python会重新自动创建一个新的局部变量代替,名字和全局变量一致。全局变量和局部变量不会互相影响
因为存储空间不一样,局部变量存放于栈空间。虽然名字一样