我以前已经做了一个简单的登录代码,并且可以正常工作,但是当我将数据从代码中分离到另一个.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"
############
在我添加第二个“用户”之前,它一直在工作。
答案 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:
如果user1
和user2
不同,则条件将始终为false。您将要使用and
而不是or
。
此外,您可能需要连接用户名和密码,并且不允许user1使用user2的密码登录,反之亦然...