Не могу получить "пока" заявление о прогрессе

Ранее я делал простую регистрацию в коде, и это работало, но когда я пошел отделить данные от кода в другой файл.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 ответа

Решение

Проблема в этой строке:

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

Если user1 а также user2 отличаются, чем условие будет всегда оценивать как ложное. Вы хотите использовать and скорее, чем or,

Кроме того, вы, вероятно, захотите подключить имя пользователя и пароль, и не позволять user1 войти в систему с паролем для user2 и наоборот...

Изменить 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, То же самое относится и к паролю.

Другие вопросы по тегам