鱼C论坛

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

26讲的练习题

[复制链接]
发表于 2021-10-25 20:13:54 | 显示全部楼层 |阅读模式

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

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

x
user_data = {}

def new_user():
    prompt = '请输入用户名:'
    while 1:
        name = input(prompt)
        if name in user_data:
            prompt('此用户名已被使用,请重新输入:')
            continue
        else:
            break
    password = input('请设置登录密码:')
    user_data[name]= password
    print('注册成功,赶紧登录试试吧')

def old_user():
    i = 3
    prompt = '请输入需登录的用户名:'
    while 1:
        name = input(prompt)
        if name not in user_data:
            prompt = '该用户名未注册,请重新输入正确的用户名:'
            continue
        else:
            break
    password = input('请输入登录密码')
    while password != user_data.get(name):
        if i>0:
            i-=1
            password = input('密码输入错误,您还有'+i+'次机会,请重新输入:')
            continue
        else:
            print('输入次数已用完,账号暂时冻结')
            break
    while password == user_data.get(name):
        print('登录成功')
        break

print('|--- 新建用户:N/n ---|')
print('|--- 登录账号:E/e ---|')
print('|--- 退出程序:N/n ---|')
prompt = '请输入指令代码:'

while 1:
    order = input(prompt)
    if order not in 'NnEeQq':
        prompt = '请输入正确的代码指令:'
        continue
    else:
        if order in 'Nn':
            new_user()
        elif order in 'Ee':
            old_user()
        else:
            print('程序已退出')
            break

以上是我的代码 但运行的过程中,如果指令代码顺序是:先n再e再n 然后第二次新建用户的时候如果是已有的用户名就会发生报错
以下是报错

|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 退出程序:N/n ---|
请输入指令代码:n
请输入用户名cjh
请设置登录密码:123
注册成功,赶紧登录试试吧
请输入指令代码:e
请输入需登录的用户名:cjh
请输入登录密码123
登录成功
请输入指令代码:n
请输入用户名cjh
Traceback (most recent call last):
  File "E:/学习资料/python实例/课后练习26.1.py", line 51, in <module>
    new_user()
  File "E:/学习资料/python实例/课后练习26.1.py", line 8, in new_user
    prompt('此用户名已被使用,请重新输入:')
TypeError: 'str' object is not callable
>>>
不太明白我哪里出错了 希望有同学能帮我指出一下 谢谢 ,鱼C的代码我能看懂 但就是想问一下 我这样写的错误在哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-25 20:15:58 | 显示全部楼层
第8行,这是啥:    prompt('此用户名已被使用,请重新输入:')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-25 20:23:52 | 显示全部楼层
suchocolate 发表于 2021-10-25 20:15
第8行,这是啥:    prompt('此用户名已被使用,请重新输入:')

估计用的pycharm然后本来想打print,结果pycharm弹出prompt了,hhhhh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-27 19:15:54 | 显示全部楼层
深谙流年 发表于 2021-10-25 20:23
估计用的pycharm然后本来想打print,结果pycharm弹出prompt了,hhhhh

这个只是重新定义一下prompt ,重新赋一下值,避免写name = input('此用户名已被使用,请重新输入:'),这样相对简洁一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 23:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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