米斯特尔.D 发表于 2021-11-10 19:00:03

Python第26讲课后题求解

def user():
    dict1={}
    l=True
    while l:
      print('|---新建用户:N/n---|')
      print('|---登陆账号:E/e---|')
      print('|---退出程序:Q/q---|')
      dima=str(input('|---请输入指定代码:'))
      if dima== 'n' or 'N':
            name=input('请输入用户名:')
            if name in dict1:
                name=input('该用户已被使用,请重新输入:')
                mima=input('请输入密码:')
                dict1=mima
                print('注册成功,赶紧试试登陆吧^_^')
            else:
                mima=input('请输入密码:')
                dict1=mima
                print('注册成功,赶紧试试登陆吧^_^')
      elif dima== 'e' or 'E':
            name=input('请输入用户名:')
            if name in dict1:
                mima=input('请输入密码:')
                if mima==dict1:
                  print('欢迎进入XXOO系统,请点击右上角X结束程序!')
                else:
                  print('您输入的密码错误!')
            else:
                name=input('您输入的用户不存在,请重新输入:')
                mima=input('请输入密码:')
                if mima==dict1:
                  print('欢迎进入XXOO系统,请点击右上角X结束程序!')
                else:
                  print('您输入的密码错误!')
      elif dima== 'q' or 'Q':
            l=False
    print('您已退出XXOO程序!')

user()

为什么不管我输入什么都在循环执行注册环节????
请大神解答

suchocolate 发表于 2021-11-10 21:10:58

所有的dima判断,如: if dima== 'n' or 'N',都改成 if dima in 'nN':
现在的判断逻辑是错的,if dima== 'n' or 'N'   等同于 if (dima=='n') or ('N'),dima=='n' 和 'N' 成了或关系,如果输入不为n,那么执行'N', 不为0,所以if永久成立,所以if没有起作用。
页: [1]
查看完整版本: Python第26讲课后题求解