026讲课后作业问题
为什么创建空字典的语句要放在login函数外面,如果放在里面的话会报错执行Nn()或Ee()函数的时候显示user_data这个字典未定义def Nn(name):
if name in user_data:
name=input('此用户名已存在,请重新输入:')
Nn(name)
else:
password=input('请输入密码:')
user_data=password
print('注册成功,赶紧试试登录吧\n')
def Ee(name):
if name not in user_data:
name=input('您输入的用户名不存在,请重新输入:')
Ee(name)
else:
password=input('请输入密码:')
if password==user_data:
print('欢迎您进入系统\n')
else:
print('密码错误')
name=input('请输入用户名:')
Ee(name)
user_data={}#为什么创建空字典的语句要放在login函数外面,如果放在里面的话会报错执行Nn()或Ee()函数的时候显示user_data这个字典未定义,这是为什么呢?
def login():
while 1:
print('''|--- 新建用户:N/n ---|
|--- 登录账户:E/e ---|
|--- 退出程序:Q/q ---|
|--- 请输入指令代码:''',end='')
judge=input()
if judge=='N' or judge=='n':
name=input('请输入用户名:')
Nn(name)
elif judge=='E' or judge=='e':
name=input('请输入用户名:')
Ee(name)
elif judge=='Q' or judge=='q':
break
else:
print('您输入的代码有误,请重新输入')
continue
user_data={}#为什么创建空字典的语句要放在login函数外面,如果放在里面的话会报错执行Nn()或Ee()函数的时候显示user_data这个字典未定义,这是为什么呢?
放再外面就算全局作用域,就是全局变量
而放在函数内属于局部变量,只能在这个函数范围内使用 Twilight6 发表于 2020-6-18 17:06
放再外面就算全局作用域,就是全局变量
而放在函数内属于局部变量,只能在这个函数范围内使用
虽然Ee()函数在login()函数里面调用,但Ee()不能找到login()函数的局部变量user_data,是这样的意思吗 JackyJi 发表于 2020-6-19 16:04
虽然Ee()函数在login()函数里面调用,但Ee()不能找到login()函数的局部变量user_data,是这样的意思吗
对 所以要放再最外面的全局作用域
页:
[1]