无法获得“ while”语句的进展

时间:2018-12-03 03:58:51

标签: python while-loop python-import

我以前已经做了一个简单的登录代码,并且可以正常工作,但是当我将数据从代码中分离到另一个.py文件并导入时,通过“ username:”输入部分将无法进行(它一直保持加载用户名的输入)。这是否意味着文件未正确导入,还是在主代码中?

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"
############

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

2 个答案:

答案 0 :(得分:0)

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,循环继续。因此,您需要用户名不匹配两者 logindata.user1 logindata.user2。密码也一样。

答案 1 :(得分:0)

问题出在这一行:

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

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

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