变量语法

变量

全局变量:被所有代码都能访问的变量,声明在函数的外部。

局部变量:只能被当前所属函数访问的变量,声明在函数的内部。

【先声明赋值,后使用变量】

#全局变量
users = "admin"

# 普通代码中使用
print("普通代码中使用", users)

运行结果:普通代码中使用: admin

#if结构中使用
if 1:
    print("if结构中使用: ", users)

运行结果:if结构中使用: admin

#循环结构中使用
while True:
    print("循环结构中使用: ", users)
    break

运行结果:循环结构中使用: admin

#函数中使用
def test_a():
    #声明一个test_a()函数中的局部变量
    phone = "HUAWEI MATE20"
    print("test_a中访问test_a局部变量: ", phone)
    print("test_a中访问全局变量: ", users)

test_a()


def test_b():
     print("test_b中访问全局变量: ", users)
     print("test_b中访问test_a局部变量: ", phone)
     
test_b()

运行结果:
test_a中访问test_a局部变量: HUAWEI MATE20
test_a中访问全局变量: admin

test_b中访问全局变量: admin
NameError: name ‘phone’ is not defined

全局变量的操作

name = “tom”
fav = [“lol”]

1、修改全局变量的数据:全局变量是一个字符串

注意:全局变量在普通函数中,可以访问数据,但是一般不允许直接修改数据,可以通过global关键字引入之后进行修改。

def test_str():
    """修改字符串数据"""
    global name ## 如果要修改全局变量的数据,需要先声明
    print("修改前的name: ", name) #查看全局变量
    name = "jerry" #修改全局变量
    print("修改后的name: ", name)
    
test_str()

运行结果:
修改前的name: tom
修改后的name: jerry

2、修改全局变量的数据:全局变量是一个列表

def test_list():
    print("全局变量的数据fav: ", fav)
    #修改list数据
    fav.append("CCTV")
    print("全局变量的数据fav: ", fav)


test_list()
print("普通代码中全局变量fav: ", fav)

运行结果:
全局变量的数据fav: [‘lol’]
全局变量的数据fav: [‘lol’, ‘CCTV’]
普通代码中全局变量fav: [‘lol’, ‘CCTV’]

全局变量和局部变量的冲突问题

# 全局变量
name = "tom"

# 函数中局部变量
def test():
    name = "jerry"
    print("函数中访问name: ", name)

test()
print("函数外访问name: ", name)

运行结果:
函数中访问name: jerry
函数外访问name: tom

***正常情况下,变量数据的访问,函数中如果出现了和全局变量重名的变量——

1.函数外部访问:
优先访问全局变量 然后访问局部变量

2.函数内部访问:
就近原则:谁离访问代码近,就优先访问谁。

困扰
什么时候定义数据为全局变量?什么时候定义数据为局部变量呢?
——如果一个数据需要被多个函数公共使用,建议定义为全局变量。
如:系统中保存所有用户的变量~可能会被系统中任意函数使用,所以定义为全局变量。

——如果一个数据只是当前函数中运算临时需要,建议定义为局部 变量。
如:系统中登录函数,用户输入账号+密码,验证是否正确返回登录结果【成功|失败】,用户输入的账号+密码临时在当前函数中验证使用,函数执行完成后失去了意义;输入的账号+密码,定义为局部变量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值