Python变量

Python变量

局部变量

 定义:
	在函数内部定义的变量
	
#定义:在函数内部声明的变量
def test():
    a = 10
    print(a)
#调用函数
test()

def test2():
    a = 20
    print(a)
#调用函数
# test2()

"""
总结:在函数里面声明的变量-->局部变量
只能作用于当前这个函数,在其他函数里面不能使用
在多个函数里面,可以声明同名的变量,它们彼此之间不受影响
为了临时(临时工)保存数据在函数里面定义局部变量
作用:临时保存数据
"""	

全局变量

#定义:在函数外面声明的变量,能够在所有函数里面使用,全局变量必须在所有使用函数的最上方

a = 100
def test3():
    print(a)
#调用函数
test3()

def test():
    print(a)
#调用函数
test()

def test2():
    print(a)
#调用函数
test2()

全局变量和局部变量名字相同的问题

a = 300  #声明一个全局变量

def test():
    a = 100 #声明一个局部变量
    print(a)
    a = 200
    print(a)
#调用函数
test()

def test2():
    print(a)
#调用函数
test2()

"""
总结:就近原则
先找局部->全局->报错
"""

修改全局变量

global关键字   

格式:
 global 需要修改变量名  
 
#修改全局变量
#语法格式:global 需要修改的变量名
a = 0
def test():
    global a
    a = 100
    print(a)
#调用函数
test()
# print(a)

def test2():
    print(a)
#调用函数
test2()

函数使用外层的变量

nonlocal关键字

格式:
nonlocal 外层函数变量名 

def test():
    num = 2
    def test2():
        nonlocal num
        num *= 2
        print(num)
    return test2()
test()

局部变量和全局变量的区别

"""
区别:本质上作用域

在函数内部声明变量-->局部变量
只能作用于当前这个函数,不能在其他函数里面使用

在函数外部声明的变量->全局变量
可以在所有函数里面使用,如果想要修改全局变量
global 需要修改的变量名
"""
def get_wendu():
    wendu = 20
    return wendu

def print_wendu(a):
    print(a)

#调用函数
# result = get_wendu()
# print(result)
# print_wendu(result)

wendu = 0
def get_wendu2():
    global wendu
    wendu = 25
    print(wendu)

def print_wendu2():
    print(wendu)

#调用函数
get_wendu2()
print_wendu2()

可变类型的全局变量

可变类型: 列表   字典   集合

当不可变的数据类型作为全局变量,需要用global声明,进行修改
可变的数据类型   不一定

#以列表为例
li = []
def test(fun):
    fun.append(10)
    print(fun)
#调用函数
# test(li)  #调用test函数把li列表作为参数传递
# print(li)

li2 = [1,2]
def test2(a):
    a += a
    print(a)
# test2(li2) #调用test2函数把li2列表作为参数传递
# print(li2)

li3 = [0,1,2,3]
def test3():
    global li3
    li3 = [99,100]
    print(li3)
#调用函数
test3()
print(li3)

不可变类型的全局变量

不可变类型: 数字  元祖   字符串

#以数字为例
a = 0
def test():
    # a = 2
    # a += 1
    # print(a)
    global a
    a = 4
    print(a)
#调用函数
test()
print(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值