小小橘子 发表于 2021-3-11 20:10:07

为什么我输入3或者4无法显示登陆成功呢?求大佬帮忙看看是哪儿出问题了

#用python设计的第一个开机程序
print("----新建用户:1/2----")
print("----用户登陆:3/4----")
print("----退出程序:5/6----")
dictionary = {}
temp = int(input("请输入指令数字:"))
while True:
    if temp == 1 or temp == 2:
      Newname = input("请输入创建的用户名:")
      Creatpassward = input("请输入密码:")
      dictionary = Creatpassward
      print("创建成功")
      temp = int(input("请输入指令数字:"))
    elif temp == 3 or temp == 4:
      name = input("请输入用户名:")
      passward = input("请输入密码:")
      if name in dictionary and dictionary == passward:
            print("登陆成功,欢迎进入xxoo系统")
            break
      else:
            print("密码或用户名错误")
            print("是否重新输入?【按yes重新输入或NO返回】")
            decision = input(":")
            if decision != "NO":
                print("请重新输入:")
            else:
                print("返回")
    elif temp == 5 or temp == 6:
      print("退出程序,谢谢使用")
      break
    else:
      print("格式错误")
      temp = int(input("请输入指令数字:"))
      

柿子饼同学 发表于 2021-3-11 20:31:20

我运行的,没有问题{:10_245:}=================== RESTART: C:\Users\86177\Desktop\临时小程序.py ===================
----新建用户:1/2----
----用户登陆:3/4----
----退出程序:5/6----
请输入指令数字:1
请输入创建的用户名:sss
请输入密码:123
创建成功
请输入指令数字:4
请输入用户名:sss
请输入密码:123
登陆成功,欢迎进入xxoo系统

yuedong 发表于 2021-3-11 21:58:50

我试了一下,可以用,但是有点问题
就是密码输错之后再次输入有点不太合理,可以尝试优化一下

yuedong 发表于 2021-3-11 22:01:48





print("----新建用户:1/2----")
print("----用户登陆:3/4----")
print("----退出程序:5/6----")
dictionary = {}
sign = True
temp = int(input("请输入指令数字:"))
while True:
    if temp == 1 or temp == 2:
      Newname = input("请输入创建的用户名:")
      Creatpassward = input("请输入密码:")
      dictionary = Creatpassward
      print("创建成功")
      temp = int(input("请输入指令数字:"))
    while True:   
      if temp == 3 or temp == 4:
            name = input("请输入用户名:")
            passward = input("请输入密码:")
      else :
            break
            if name in dictionary and dictionary == passward:
                print("登陆成功,欢迎进入xxoo系统")
                sign = False
                break
            else:
                print("密码或用户名错误")
                print("是否重新输入?【按yes重新输入或NO返回】")
                decision = input(":")
                if decision != "NO":
                  print("请重新输入!")
                  
                else:
                  print("返回")
                  break
    if sign != True:
      break
    if temp == 5 or temp == 6:
      print("退出程序,谢谢使用")
      break
    else:
      print("格式错误")
      temp = int(input("请输入指令数字:"))

yuedong 发表于 2021-3-11 22:03:32

这个是我修改了一下的,之前返回并不能退回到等待输入指令的哪里
还有这里的yes/NO
其实也可以优化一下
其它暂时好像都没问题了

小小橘子 发表于 2021-3-11 22:48:24

yuedong 发表于 2021-3-11 22:01


第一个break是直接到哪一部分才终止循环啊,而且不管用户名或密码都是正确错误都会继续循环继续让我输入用户名密码https://imgtu.com/i/6NN5ef

小小橘子 发表于 2021-3-11 22:49:36

https://imgtu.com/i/6NN5ef

yuedong 发表于 2021-3-11 23:00:58

你发的图片一直转圈圈,加载不出来
break,只是会跳出当前的那一个while循环

yuedong 发表于 2021-3-11 23:02:56

稍等,我当时测的时候好像没问题,现在的确有的,我再改改

yuedong 发表于 2021-3-11 23:22:02


print("----新建用户:1/2----")
print("----用户登陆:3/4----")
print("----退出程序:5/6----")
dictionary = {}
sign = True
temp = int(input("请输入指令数字:"))
while True:
    if temp == 1 or temp == 2:
      Newname = input("请输入创建的用户名:")
      Creatpassward = input("请输入密码:")
      dictionary = Creatpassward
      print("创建成功")
      temp = int(input("请输入指令数字:"))
    while sign:
      if temp == 3 or temp == 4:
            name = input("请输入用户名:")
            passward = input("请输入密码:")
      else:
            break
      if name in dictionary and dictionary == passward:
            print("登陆成功,欢迎进入xxoo系统")
            sign = False
            break
      else:
            print("密码或用户名错误")
            print("是否重新输入?【按yes重新输入或NO返回】")
            decision = input(":")
            if decision != "NO":
                print("请重新输入!")
                  
            else:
                print("返回")
                break
    if sign != True:
            break
    if temp == 5 or temp == 6:
      print("退出程序,谢谢使用")
      break
    else:
      print("格式错误")
      temp = int(input("请输入指令数字:"))

页: [1]
查看完整版本: 为什么我输入3或者4无法显示登陆成功呢?求大佬帮忙看看是哪儿出问题了