鱼C论坛

 找回密码
 立即注册
查看: 1579|回复: 3

[已解决]课后作业第26讲,设计用户登录程序

[复制链接]
发表于 2021-10-6 15:53:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是我设计的代码
存在问题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[name] = 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()
最佳答案
2021-10-7 09:05:24
  1. def main():
  2.     users = {}
  3.     count = 1
  4.     while count:
  5.         print('''--- 新建用户: N/n ---
  6. --- 登录账号: E/e ---
  7. --- 退出程序: Q/q ---''')
  8.         code = input('* 请输入指定代码: ')
  9.         if code in ['n', 'N']:
  10.             name = input('* 请输入用户名: ')
  11.             while name in users:
  12.                 name = input('用户名已经存在,请重新输入: ')
  13.             pw = input('* 请输入密码: ')
  14.             users[name] = pw
  15.             print('注册成功,赶紧试试登录把! ')
  16.         elif code in ['E', 'e']:
  17.             if not users:
  18.                 print('目前用户列表为空,请先添加用户')
  19.                 continue
  20.             name = input('* 请输入用户名: ')
  21.             while name not in users:
  22.                 name = input('用户名不存在,请重新输入: ')
  23.             pw = input('* 请输入密码: ')
  24.             if users[name] == pw:
  25.                 count -= 1
  26.                 print('欢迎进入培哥的世界,请在右上角点击X结束程序! ')
  27.         elif code in ['Q', 'q']:
  28.             print('程序退出!')
  29.             exit(0)


  30. if __name__ == '__main__':
  31.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-7 09:05:24 | 显示全部楼层    本楼为最佳答案   
  1. def main():
  2.     users = {}
  3.     count = 1
  4.     while count:
  5.         print('''--- 新建用户: N/n ---
  6. --- 登录账号: E/e ---
  7. --- 退出程序: Q/q ---''')
  8.         code = input('* 请输入指定代码: ')
  9.         if code in ['n', 'N']:
  10.             name = input('* 请输入用户名: ')
  11.             while name in users:
  12.                 name = input('用户名已经存在,请重新输入: ')
  13.             pw = input('* 请输入密码: ')
  14.             users[name] = pw
  15.             print('注册成功,赶紧试试登录把! ')
  16.         elif code in ['E', 'e']:
  17.             if not users:
  18.                 print('目前用户列表为空,请先添加用户')
  19.                 continue
  20.             name = input('* 请输入用户名: ')
  21.             while name not in users:
  22.                 name = input('用户名不存在,请重新输入: ')
  23.             pw = input('* 请输入密码: ')
  24.             if users[name] == pw:
  25.                 count -= 1
  26.                 print('欢迎进入培哥的世界,请在右上角点击X结束程序! ')
  27.         elif code in ['Q', 'q']:
  28.             print('程序退出!')
  29.             exit(0)


  30. if __name__ == '__main__':
  31.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-7 09:53:50 | 显示全部楼层

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[name] = 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为什么会报错呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-7 10:16:26 | 显示全部楼层

已经明白了!谢谢!又学到了新的东西!找到了自己的错误!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 00:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表