Я не могу получить ожидаемый вывод в моем коде (система входа в систему) - PullRequest
0 голосов
/ 26 января 2019

Привет, я новичок в Python и в программировании в целом!Я пытался создать систему входа в систему с помощью Python, но она, похоже, не работает, так как я ожидаю, что проблема заключается в том, что даже если я введу ложные данные для входа в систему в конце, программа напечатает вход в систему успешно, вместо того, чтобы печатать неправильное имя пользователя или пароль. ПРИМЕЧАНИЕ: яне пытаясь создать реальную систему входа в систему, это всего лишь практическая форма из того, что я узнал

signup_username = ""
signup_password = ""
login_username = ""
login_password = ""
false_login_info = False
def signup() :
  signup_username = input("Choose your username :")
  signup_password = input("Choose your password :")

def login() :
  login_username = input("Enter username :")
  login_password = input("Enter password :")
signup()
print("Signup successful")
login()
if login_username != signup_username or login_password != signup_password :
  print("Incorrect username or password")
else :
  print("login successful")

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ Результат: 1) если информация для входа такая же, как для информации о регистрации, я должен получить: - Вход в систему успешен 2) если данные для входаНЕ то же самое, что и информация о регистрации: - Неверное имя пользователя или пароль. В действительности: в обоих случаях программа напечатает успешный вход

1 Ответ

0 голосов
/ 26 января 2019

Вам необходимо вернуть значения из ваших функций.Имена, определенные внутри функции, не совпадают с именами, существующими вне функции.В этом случае я добавил x к именам в глобальной области видимости, чтобы отличать их от имен внутри функции, чтобы, надеюсь, сделать ее более понятной.Я мог бы использовать одни и те же имена как внутри функции, так и снаружи;это не имело бы значения.Вы можете увидеть больше здесь .

Нет необходимости «инициализировать» переменные как пустые строки перед вызовом функции.Вместо этого мы просто создадим их в функции, return them, а затем распакуем их в переменные, оканчивающиеся на x.

false_login_info = False # You never use this

def signup() :
    signup_username = input("Choose your username :")
    signup_password = input("Choose your password :")
    return signup_username, signup_password

def login() :
    login_username = input("Enter username :")
    login_password = input("Enter password :")
    return login_username, login_password


signup_usernamex, signup_passwordx = signup()
print("Signup successful")

login_usernamex, login_passwordx = login()

if login_usernamex != signup_usernamex or login_passwordx != signup_passwordx:
    print("Incorrect username or password")
else :
    print("login successful")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...