无法使 "while" 语句取得进展
Can not get "while" statement to progress
我之前制作了一个简单的登录代码,它可以正常工作,但是当我将代码中的数据分离到另一个 .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"
############
在我向其添加第二个 "user" 之前,它之前一直在工作。
将 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
and logindata.user2
。密码也一样。
问题出在这一行:
while username != logindata.user1 or username != logindata.user2:
如果 user1
和 user2
不同,则条件将始终计算为 false。您需要使用 and
而不是 or
.
此外,您可能希望连接用户名和密码,并且不允许用户 1 使用用户 2 的密码登录,反之亦然...
我之前制作了一个简单的登录代码,它可以正常工作,但是当我将代码中的数据分离到另一个 .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"
############
在我向其添加第二个 "user" 之前,它之前一直在工作。
将 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
and logindata.user2
。密码也一样。
问题出在这一行:
while username != logindata.user1 or username != logindata.user2:
如果 user1
和 user2
不同,则条件将始终计算为 false。您需要使用 and
而不是 or
.
此外,您可能希望连接用户名和密码,并且不允许用户 1 使用用户 2 的密码登录,反之亦然...