python 课后习题26讲动动手
本帖最后由 Pythonkir 于 2017-4-14 15:30 编辑新人求助,课后习题26讲动动手我自己写了答案(并没有按小甲鱼老师要求的用函数),可是实际的运行并不是设想的那样,第二次输入用户名后应该弹出“请输入密码“,结果却是“此用户名已被使用,请重新输入:”不知道哪里出现了问题?
while 1:
dict1 = {}
print("新建用户:N/n")
print("登录账号:E/e")
print("退出程序:Q/q")
choice = str(input("请输入指令代码:"))
if choice == "n"or"N":
name = input("请输入用户名:")
while 2:
if name in dict1:
name = input("此用户名已被使用,请重新输入:")
continue
else:
code = input("请输入密码:")
dict1.setdefault(name,code)
print("注册成功,赶紧试试登录吧")
dename = str(input("请输入用户名:"))
if dename in dict1:
tiaochu = ("请输入密码:")
if tiaochu == dict1:
print("欢迎进入xxoo系统")
break
if choice == "e" or "E":
dename = str(input("请输入用户名:"))
if dename in dict1:
tiaochu = ("请输入密码:")
if tiaochu == dict1:
print("欢迎进入xxoo系统")
if choice == "Q" or "q":
break
把if choice == "n"or"N":改为if choice == "n"or choice == "N":。下同。 while 1:
dict1 = {}
print("新建用户:N/n")
print("登录账号:E/e")
print("退出程序:Q/q")
choice = str(input("请输入指令代码:"))
if choice == "n" or choice == "N":
name = input("请输入用户名:")
while 2:
if name in dict1:
name = input("此用户名已被使用,请重新输入:")
continue
else:
code = input("请输入密码:")
dict1.setdefault(name,code)
print("注册成功,赶紧试试登录吧")
dename = str(input("请输入用户名:"))
if dename in dict1:
tiaochu = ("请输入密码:")
if tiaochu == dict1:
print("欢迎进入xxoo系统")
break
if choice == "e" or choice == "E":
dename = str(input("请输入用户名:"))
if dename in dict1:
tiaochu = ("请输入密码:")
if tiaochu == dict1:
print("欢迎进入xxoo系统")
if choice == "Q" or choice == "q":
break
冬雪雪冬 发表于 2017-4-14 16:24
把if choice == "n"or"N":改为if choice == "n"or choice == "N":。下同。
改了,还是老毛病新建用户:N/n
登录账号:E/e
退出程序:Q/q
请输入指令代码:n
请输入用户名:wzh
请输入密码:123
注册成功,赶紧试试登录吧
请输入用户名:wzh
此用户名已被使用,请重新输入: 新手·ing 发表于 2017-4-14 17:50
就是先输入 n,然后创建出新用户后,不能登录了就
新建用户:N/n
登录账号:E/e
退出程序:Q/q
请输入指令代码:n
请输入用户名:wzh
请输入密码:123
注册成功,赶紧试试登录吧
请输入用户名:wzh
此用户名已被使用,请重新输入: 新手·ing 发表于 2017-4-14 17:50
解决了,是应该把dict1放到while1外面
页:
[1]