Pythonkir 发表于 2017-4-14 15:22:55

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

冬雪雪冬 发表于 2017-4-14 16:24:52

把if choice == "n"or"N":改为if choice == "n"or choice == "N":。下同。

新手·ing 发表于 2017-4-14 17:50:06

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

Pythonkir 发表于 2017-4-16 15:20:58

冬雪雪冬 发表于 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
此用户名已被使用,请重新输入:

Pythonkir 发表于 2017-4-16 15:22:44

新手·ing 发表于 2017-4-14 17:50


就是先输入 n,然后创建出新用户后,不能登录了就
新建用户:N/n
登录账号:E/e
退出程序:Q/q
请输入指令代码:n
请输入用户名:wzh
请输入密码:123
注册成功,赶紧试试登录吧
请输入用户名:wzh
此用户名已被使用,请重新输入:

Pythonkir 发表于 2017-4-17 14:45:22

新手·ing 发表于 2017-4-14 17:50


解决了,是应该把dict1放到while1外面
页: [1]
查看完整版本: python 课后习题26讲动动手