问题1的解决方案是将`dict1`声明为全局变量,以便在`now_user()`函数中访问它并进行判断。同时,你需要使用`dict1[name]`来存储密码。修改后的代码如下:
dict1 = {}
def now_user():
global dict1
name = input("请输入用户名:")
while True:
if name in dict1:
name = input('此用户名已被注册,请重新输入:')
continue
else:
break
password = input("请输入密码:")
dict1[name] = password
print('注册成功,赶紧登录试试吧!')
def new_login():
global dict1
name = input("请输入用户名:")
while True:
if name not in dict1:
name = input('您输入的用户不存在,请重新输入:')
continue
else:
break
login_word = input("请输入密码:")
while True:
if login_word == dict1[name]:
print('欢迎进入系统!')
break
else:
login_word = input('密码不正确,请重新输入密码:')
continue
def system():
print('----新建用户:N/n----\n----登录账号:E/e----\n----退出程序:Q/q----')
while True:
com = input('请输入指令代码:')
if com.lower() == 'n':
now_user()
elif com.lower() == 'e':
new_login()
elif com.lower() == 'q':
print('感谢您的使用,谢谢!')
break
system()
问题2的解决方案是在`new_login()`函数中添加一个计数器,在用户输入错误密码时,计数器递增,达到一定次数后提示用户密码错误,并跳出循环。修改后的代码如下:
dict1 = {}
def now_user():
global dict1
name = input("请输入用户名:")
while True:
if name in dict1:
name = input('此用户名已被注册,请重新输入:')
continue
else:
break
password = input("请输入密码:")
dict1[name] = password
print('注册成功,赶紧登录试试吧!')
def new_login():
global dict1
name = input("请输入用户名:")
while True:
if name not in dict1:
name = input('您输入的用户不存在,请重新输入:')
continue
else:
break
login_word = input("请输入密码:")
count = 0
while True:
if login_word == dict1[name]:
print('欢迎进入系统!')
break
else:
count += 1
if count >= 3:
print('密码错误次数过多,登录失败!')
break
else:
login_word = input('密码不正确,请重新输入密码:')
def system():
print('----新建用户:N/n----\n----登录账号:E/e----\n----退出程序:Q/q----')
while True:
com = input('请输入指令代码:')
if com.lower() == 'n':
now_user()
elif com.lower() == 'e':
new_login()
elif com.lower() == 'q':
print('感谢您的使用,谢谢!')
break
system()
希望这可以帮助到你!有任何问题请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |