|  | 
 
| 
Urse = {}
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  def User_account():
 while True:
 command = input('---新建用户N/n---'
 '---登录账户E/e---'
 '---退出程序Q/q---'
 '---请输入指令代码:')
 
 if command == 'n':
 New_Urse_name = input('请输入用户名')
 
 if New_Urse_name in Urse:
 print('此用户名已存在重新输入')
 continue
 else:
 password = input('请输入密码')
 Urse[New_Urse_name] = password
 print('注册成功,赶紧试试登录吧')
 command = input()
 if command == 'E' or 'e':
 while True:
 Urse_name = input('请输入用户名')
 Urse.get(Urse_name,'您输入的用户不存在请重新输入')
 if Urse_name in Urse:
 times = 3
 password = input('请输入密码')
 if Urse[Urse_name] == password:
 print('登录成功')
 continue
 
 else:
 times -= 1
 password = input('密码错误,请重新输入')
 print('您还有%d次机会'% (times))
 continue
 if times == 0:
 print('次数已用,您是否忘记密码')
 break
 
 if command == 'Q' or 'q':
 print('已退出')
 
 为什么我输入a的时候竟然会进入 到
 else:
 times -= 1
 password = input('密码错误,请重新输入')
 print('您还有%d次机会'% (times))
 continue
 
 ---新建用户N/n------登录账户E/e------退出程序Q/q------请输入指令代码:a
 请输入用户名123
 Traceback (most recent call last):
 File "D:/py文件/求助解答文件/用户登录系统.py", line 42, in <module>
 User_account()
 File "D:/py文件/求助解答文件/用户登录系统.py", line 32, in User_account
 times -= 1
 UnboundLocalError: local variable 'times' referenced before assignment
 以上是报错
 
 条件判断不是我所想的那样,好比if command == 'q' or 'Q',就算我从来没有输入过d,输入到一次两次就可以进入这个条件
 
 以上代码还存在众多问题,我都重写了
   
 
 
 
粗略的看了下,存在以下几个问题:
 一、if 判断太多,可以使用 if...elif...else... 多条件分支语句
 
 二、类似   if command == 'E' or 'e':
 之类的判断没有考虑优先级,可以使用
 command == 'E' or command == 'e':
 这种类型的判断
 
 三、写代码之前记得理清楚逻辑关系,可以使用思维导图或者流程图
 | 
 |