dict1={}
l=True
while l:
print('|---新建用户:N/n---|')
print('|---登陆账号:E/e---|')
print('|---退出程序:Q/q---|')
dima=input('|---请输入指定代码:')
if dima== 'n' or 'N':
name=input('请输入用户名:')
if name in dict1:
name=input('该用户已被使用,请重新输入:')
mima=input('请输入密码:')
dict1[name]=mima
print('注册成功,赶紧试试登陆吧^_^')
else:
mima=input('请输入密码:')
dict1[name]=mima
print('注册成功,赶紧试试登陆吧^_^')
elif dima== 'e' or 'E':
name=input('请输入用户名:')
if name in dict1:
mima=input('请输入密码:')
if mima==dict1[name]:
print('欢迎进入XXOO系统,请点击右上角X结束程序!')
else:
print('您输入的密码错误!')
else:
name=input('您输入的用户不存在,请重新输入:')
mima=input('请输入密码:')
if mima==dict1[name]:
print('欢迎进入XXOO系统,请点击右上角X结束程序!')
else:
print('您输入的密码错误!')
elif dima== 'q' or 'Q':
l=False
print('您已退出XXOO程序!')
#为什么无论输入什么都循环执行新建用户程序
出现这个问题的原因在于,你的or用法错了。if dima== 'n' or 'N' 等价于 if dima == 'n' , if 'N' 两个表达式,因为 if 'N' 总是 True,所以无论输入什么都会进第一个判断条件。正确的做法是将判断改成:if dima == ('n' or 'N') 或者 if dima =='n' or dima == 'N' 或者 if dima in 'nN' 等,这三种方式均可。
while 1:
dima=input('|---请输入指定代码:')
if dima == "n" or dima=="N":
name=input('请创建用户名:')
if name not in dict1:
mima=input('请创建密码:')
dict1[name]=mima
print('注册成功,赶紧试试登陆吧^_^')
break
else:
print('该用户已被使用,请重新输入')
continue
elif dima == "e" or dima=="E":
name=input('请输入用户名:')
if name in dict1:
mima=input('请输入密码:')
if mima==dict1[name]:
print('欢迎进入XXOO系统,请点击右上角X结束程序!')
break
else:
print('您输入的密码错误!')
continue
else:
print('您输入的用户不存在')
continue
elif dima== 'q' or dima=="Q":
print('您已退出XXOO程序!')
break
else:
print("只能帮你到这里了,我也是小白")
break