Python-全局变量和局部变量

什么是全局变量和局部变量?

局部变量:在函数内部申明的变量,只能在函数内部调用,超过使用范围就会报错。

全局变量:就是在整个python文件中申明的变量,可以在全局使用。

正常情况下:

# 什么是全局变量和局部变量?
a = 100
def sum_num(num):
    total = a + num
    print('局部变量打印:')
    print('num:{};total:{}'.format(num, total))
    print('全局变量打印:')
    print('a:{}'.format(a))

sum_num(10)
print('全局变量打印:')
print('a:{}'.format(a))

-----------
输出:
局部变量打印:
num:10;total:110
全局变量打印:
a:100
全局变量打印:
a:100

局部变量超出使用范围报错示例: 

局部变量和全局变量使用优先级

在局部,如果局部变量和全局变量名相同,优先使用局部变量

b = 100
def show_num():
    b = 20
    print('b的值:', b)

show_num()

----------
输出:
b的值: 20

global-全局变量在局部修改

正常情况下,全局变量可以在局部进行查看(print),但是不能用于修改

全局变量可以在局部查看:

b = 100
def show_num():
    print(b)

show_num()

--------
输出:
100

 全局变量不可以直接在局部修改(报错):

b = 100
def show_num():
    b += 20

show_num()

--------
输出:
UnboundLocalError: local variable 'b' referenced before assignment

 

如果想在局部使用全局变量,需要通过global

b = 100
def show_num():
    global b
    b += 20

show_num()
print('全局变量b:', b)

-------------
输出:
全局变量b: 120

global-局部变量的全局使用

a = 100
def sum_num(num):
    global total
    total = a + num
    print('局部变量打印:')
    print('num:{};total:{}'.format(num, total))

sum_num(10)
print('打印global后的局部变量')
print('total:{}'.format(total))

--------
输出:
局部变量打印:
num:10;total:110
打印global后的局部变量
total:110

不是所有函数中的变量都需要加global

重要:在函数中定义的局部变量想要全局调用时,只有不可变参数需要加global!!!

什么是不可变参数?什么是可变参数?

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值