鱼C论坛

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

[已解决]python字典课后作业求助

[复制链接]
发表于 2020-2-22 15:01:50 | 显示全部楼层 |阅读模式

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

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

x
user_data = {}


def new_user():
    prompt = '请输入用户名'
    while True:
        name = input(prompt)
        if name in user_data:
            prompt = '用户名已存在'
            continue
        else:
            break
    passwd = input('请输入密码')
    user_data[name] = passwd
    print('注册成功,尝试登陆一下吧')

def old_user():
    print = '请输入用户名'
    while True:
        name = input(prompt)
        if name not in user_data:
            prompt = '您输入的用户名不存在,请重新输入'
            continue
        else:
            break

    passwd = input('请输入密码')
    pwd = user_data.get(name)
    if passwd == pwd:
        print('欢迎进入XX系统,请点击右上角结束程序')
    else:
        print('密码错误')

def showmenu():
    prompt = '''
|--- 新建用户:N/n ---|
|--- 登陆账号:E/e ---|
|--- 推出程序:Q/q ---|
|--- 请输入指令代码:'''
    while True:
        chosen = False
        while not chosen:
            choice = input(prompt)
            if choice not in 'NnEeQq':
                print('您输入的指令代码有误,重新输入')
            else:
                chosen = True
            if choice == 'q' or choice == 'Q':
                break
            if choice == 'n' or choice == 'N':
                new_user()
            if choice == 'e' or choice == 'E':
                old_user()


源码有点长
可以运行
但是运行之后E指令会报错
Q指令不返回
http://p2.so.qhmsg.com/t02c31ea618df2d6447.jpg
http://p2.so.qhmsg.com/t02169287b440c8e6c6.jpg
这是运行出来的截图 谢谢大家了
最佳答案
2020-2-22 16:43:28
  1. #-*-coding:gbk-*-
  2. def new_user():
  3.     print()
  4.     prompt = '请输入用户名:'
  5.     while True:
  6.         name = input(prompt)
  7.         if name in user_data:
  8.             prompt = '用户名已存在'
  9.             continue
  10.         else:
  11.             break
  12.     passwd = input('请输入密码:')
  13.     user_data[name] = passwd
  14.     print('注册成功,尝试登陆一下吧')

  15. def old_user():
  16.     print()
  17.     prompt = '请输入用户名:'
  18.     while True:
  19.         name = input(prompt)
  20.         if name not in user_data:
  21.             prompt = '您输入的用户名不存在,请重新输入'
  22.             continue
  23.         else:
  24.             break

  25.     passwd = input('请输入密码:')
  26.     pwd = user_data.get(name)
  27.     if passwd == pwd:
  28.         print('欢迎进入XX系统,请点击右上角结束程序')
  29.     else:
  30.         print('密码错误!')

  31. def showmenu():
  32.     prompt = '''
  33. |--- 新建用户:N/n ---|
  34. |--- 登陆账号:E/e ---|
  35. |--- 推出程序:Q/q ---|
  36. |--- 请输入指令代码:'''
  37.     while True:
  38.         choice = input(prompt) . strip()
  39.         if len(choice) > 0:
  40.             if choice in 'nNeEqQ' :
  41.                 if choice in 'nN' :
  42.                     new_user()
  43.                 elif choice in 'eE' :
  44.                     old_user()
  45.                 else:
  46.                     break
  47.             else:
  48.                 print('您输入的指令代码有误,重新输入\n')
  49.         else:
  50.             break

  51. user_data = {}
  52. showmenu()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-22 15:28:43 | 显示全部楼层
本帖最后由 jackz007 于 2020-2-22 15:30 编辑
  1.             else:
  2.                 chosen = True
  3.             if choice == 'q' or choice == 'Q':
  4.                 break
  5.             if choice == 'n' or choice == 'N':
  6.                 new_user()
  7.             if choice == 'e' or choice == 'E':
  8.                 old_user()
复制代码

        代码缩进有误,改成下面这样
  1.             else:
  2.                 chosen = True
  3.                 if choice == 'q' or choice == 'Q':
  4.                     break
  5.                 if choice == 'n' or choice == 'N':
  6.                     new_user()
  7.                 if choice == 'e' or choice == 'E':
  8.                     old_user()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-22 16:08:54 | 显示全部楼层
jackz007 发表于 2020-2-22 15:28
代码缩进有误,改成下面这样

不行啊 还是一样的报错提示
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-22 16:43:28 | 显示全部楼层    本楼为最佳答案   
  1. #-*-coding:gbk-*-
  2. def new_user():
  3.     print()
  4.     prompt = '请输入用户名:'
  5.     while True:
  6.         name = input(prompt)
  7.         if name in user_data:
  8.             prompt = '用户名已存在'
  9.             continue
  10.         else:
  11.             break
  12.     passwd = input('请输入密码:')
  13.     user_data[name] = passwd
  14.     print('注册成功,尝试登陆一下吧')

  15. def old_user():
  16.     print()
  17.     prompt = '请输入用户名:'
  18.     while True:
  19.         name = input(prompt)
  20.         if name not in user_data:
  21.             prompt = '您输入的用户名不存在,请重新输入'
  22.             continue
  23.         else:
  24.             break

  25.     passwd = input('请输入密码:')
  26.     pwd = user_data.get(name)
  27.     if passwd == pwd:
  28.         print('欢迎进入XX系统,请点击右上角结束程序')
  29.     else:
  30.         print('密码错误!')

  31. def showmenu():
  32.     prompt = '''
  33. |--- 新建用户:N/n ---|
  34. |--- 登陆账号:E/e ---|
  35. |--- 推出程序:Q/q ---|
  36. |--- 请输入指令代码:'''
  37.     while True:
  38.         choice = input(prompt) . strip()
  39.         if len(choice) > 0:
  40.             if choice in 'nNeEqQ' :
  41.                 if choice in 'nN' :
  42.                     new_user()
  43.                 elif choice in 'eE' :
  44.                     old_user()
  45.                 else:
  46.                     break
  47.             else:
  48.                 print('您输入的指令代码有误,重新输入\n')
  49.         else:
  50.             break

  51. user_data = {}
  52. showmenu()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 10:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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