【问题标题】:Can not get "while" statement to progress [duplicate]无法让“while”语句继续[重复]
【发布时间】:2019-05-04 08:44:35
【问题描述】:

我之前做了一个简单的登录代码并且它正在工作,但是当我将数据从代码中分离到另一个 .py 文件并导入它时,它不会通过“用户名:”输入部分进行(它保持加载用户名的输入)。这是否意味着文件没有正确导入或在主代码中?

Login.py

print ("Loading please wait...")

import logindata 
import inputdata
import time

time.sleep(1.5)

username = ""
while username != logindata.user1 or username != logindata.user2:
    print ("Username: ")
    username = input()

password = ""
while password != logindata.passw1 or password != logindata.passw2:
    print ("password")
    password = input()

if username == logindata.user1 and password == logindata.passw1:
    print ("Logging in...")
    time.sleep(3)
    print ("Welcome, user1!")


if username == logindata.user2 and password == logindata.passw2:
    print ("Logging in...")
    time.sleep(3)
    print ("Welcome, user2!")

logindata.py

#Login Data#
user1 = "user1"
passw1 = "pass1"
user2 = "user2"
passw2 = "pass2"
############

在我向其添加第二个“用户”之前,它之前一直在工作。

【问题讨论】:

  • 当这被标记为重复时,我正要发布答案。由于答案与先前存在的问题相关,因此我将其发布在那里。 Here's a link.

标签: python while-loop python-import


【解决方案1】:

问题出在这一行:

while username != logindata.user1 or username != logindata.user2:

如果user1user2 不同,则条件将始终为假。您需要使用and 而不是or

另外,您可能希望连接用户名和密码,并且不允许 user1 使用 user2 的密码登录,反之亦然...

【讨论】:

    【解决方案2】:

    or 更改为and

    username = ""
    while username != logindata.user1 and username != logindata.user2:
        print ("Username: ")
        username = input()
    
    password = ""
    while password != logindata.passw1 and password != logindata.passw2:
        print ("password")
        password = input()
    

    当您输入与logindata.user1 匹配的内容时,user != logindata.user2 的计算结果为True,循环继续。因此,您需要用户名不匹配both logindata.user1 logindata.user2。密码也是一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 2016-12-25
      相关资源
      最近更新 更多