W1ND123 发表于 2021-10-6 15:53:42

课后作业第26讲,设计用户登录程序

这是我设计的代码
存在问题1:当用户已经存在时,重新输入后直接跳出循环了,为什么会这样呢
问题2: if code == 'E' or code == 'e':这行代码最初我用的时elif为什么会报错呢?
希望能有大神可以帮我纠错以及更改!谢谢!!!!






def enterway():
    ziliao = {}
    count = 1
    while count:
      print('''
--- 新建用户: N/n ---
--- 登录账号: E/e ---
--- 退出程序: Q/q ---''')
      code = input('---请输入指定代码: ')
      if code == 'N' or code == 'n':
            name = input('请输入用户名: ')
            if name in ziliao :
                name = input('用户名已经存在,请重新输入: ')
                continue
            
            secert = input('请输入密码: ')
            ziliao = secert
            print('注册成功,赶紧试试登录把! ')
            
      continue
      if code == 'E' or code == 'e':
            name = input('请输入用户名: ')
            if name not in ziliao:
                name = input('用户名不存在,请重新输入: ')
               
                continue
            else :
                secert = input('请输入密码: ')
                if ziliao.get(name) == secert:
                  count -= 1
                  break
      print('欢迎进入培哥的世界,请在右上角点击X结束程序! ')
      
enterway()

suchocolate 发表于 2021-10-7 09:05:24

def main():
    users = {}
    count = 1
    while count:
      print('''--- 新建用户: N/n ---
--- 登录账号: E/e ---
--- 退出程序: Q/q ---''')
      code = input('* 请输入指定代码: ')
      if code in ['n', 'N']:
            name = input('* 请输入用户名: ')
            while name in users:
                name = input('用户名已经存在,请重新输入: ')
            pw = input('* 请输入密码: ')
            users = pw
            print('注册成功,赶紧试试登录把! ')
      elif code in ['E', 'e']:
            if not users:
                print('目前用户列表为空,请先添加用户')
                continue
            name = input('* 请输入用户名: ')
            while name not in users:
                name = input('用户名不存在,请重新输入: ')
            pw = input('* 请输入密码: ')
            if users == pw:
                count -= 1
                print('欢迎进入培哥的世界,请在右上角点击X结束程序! ')
      elif code in ['Q', 'q']:
            print('程序退出!')
            exit(0)


if __name__ == '__main__':
    main()

W1ND123 发表于 2021-10-7 09:53:50

suchocolate 发表于 2021-10-7 09:05


def enterway():
    ziliao = {}
    count = 1
    while count:
      print('''
--- 新建用户: N/n ---
--- 登录账号: E/e ---
--- 退出程序: Q/q ---''')
      code = input('---请输入指定代码: ')
      if code == 'N' or code == 'n':
            name = input('请输入用户名: ')
            if name in ziliao :
                name = input('用户名已经存在,请重新输入: ')
                continue
            
            secert = input('请输入密码: ')
            ziliao = secert
            print('注册成功,赶紧试试登录把! ')
            
      continue
       elif code == 'E' or code == 'e':
            name = input('请输入用户名: ')
            if name not in ziliao:
                name = input('用户名不存在,请重新输入: ')
               
                continue
            else :
                secert = input('请输入密码: ')
                if ziliao.get(name) == secert:
                  count -= 1
                  break
      print('欢迎进入培哥的世界,请在右上角点击X结束程序! ')
      
enterway()

我这里红色字体从if 改成elif为什么会报错呢

W1ND123 发表于 2021-10-7 10:16:26

suchocolate 发表于 2021-10-7 09:05


已经明白了!谢谢!又学到了新的东西!找到了自己的错误!
页: [1]
查看完整版本: 课后作业第26讲,设计用户登录程序