26讲的练习题
user_data = {}def new_user():
prompt = '请输入用户名:'
while 1:
name = input(prompt)
if name in user_data:
prompt('此用户名已被使用,请重新输入:')
continue
else:
break
password = input('请设置登录密码:')
user_data= 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的代码我能看懂 但就是想问一下 我这样写的错误在哪里 第8行,这是啥: prompt('此用户名已被使用,请重新输入:') suchocolate 发表于 2021-10-25 20:15
第8行,这是啥: prompt('此用户名已被使用,请重新输入:')
估计用的pycharm然后本来想打print,结果pycharm弹出prompt了,hhhhh
深谙流年 发表于 2021-10-25 20:23
估计用的pycharm然后本来想打print,结果pycharm弹出prompt了,hhhhh
这个只是重新定义一下prompt ,重新赋一下值,避免写name = input('此用户名已被使用,请重新输入:'),这样相对简洁一点
页:
[1]