鱼C论坛

 找回密码
 立即注册
查看: 998|回复: 5

[已解决]全局变量与局部变量

[复制链接]
发表于 2018-1-25 15:45:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

user_data = {}

def new_user():
    prompt = '请输入用户名:'
    while True:
        name = input(prompt)
        if name in user_data:
            prompt = '此用户名已经被使用,请重新输入:'
            continue
        else:
            break

    passwd = input('请输入密码:')
    user_data[name] = passwd
    print('注册成功,赶紧试试登录吧^_^')


请问:
user_data = {}不是全局变量么,在函数里可以被改变吗?
最佳答案
2018-1-25 15:50:10
本帖最后由 sky 于 2018-1-25 15:52 编辑

是全局变量 但是函数内并没有重新赋值, 只有赋值行为才会创建局部变量
比如userdata = {}这样
这里userdata[name] = passwd
不是对变量的赋值

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-25 15:50:10 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

本帖最后由 sky 于 2018-1-25 15:52 编辑

是全局变量 但是函数内并没有重新赋值, 只有赋值行为才会创建局部变量
比如userdata = {}这样
这里userdata[name] = passwd
不是对变量的赋值

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 15:52:13 | 显示全部楼层
函数内部会复制一个名称类型一样局部变量,用完了就删除
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 15:56:10 | 显示全部楼层
塔利班 发表于 2018-1-25 15:52
函数内部会复制一个名称类型一样局部变量,用完了就删除

真的吗 哪里说的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 16:05:55 | 显示全部楼层
sky 发表于 2018-1-25 15:56
真的吗 哪里说的

没看到没赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 16:08:03 | 显示全部楼层
本帖最后由 sky 于 2018-1-25 16:09 编辑


吓死我了 还以为我学了假的python
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-6 08:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表