Симулятор паролей с использованием словаря - PullRequest
0 голосов
/ 14 октября 2018

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

num_passwords_user = int(input("How many pairs of usernames/passwords? "))
username_input = ''
password_input = ''
counter = 0

while counter < num_passwords_user:
    username_input = str(input("Enter username for the database: "))
    password_input = str(input("Please enter your password for the database: "))
    database = {username_input: password_input}
    counter += 1
    print(database)
    ask1 = input("Enter username to login: ")
    ask2 = input("Enter password to login: ")
    while (ask1 and ask2) not in database:
        if (ask1 and ask2) not in database:
            print("Incorrect, try again.")
            username_input = (input("Enter username: "))
            ask = input("Enter password: ")
    print("Access Granted")

Проблема со вторым циклом while.Когда я ввожу значение, оно всегда выдает «Неправильно, попробуйте еще раз».Я не знаю, как это исправить.

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

База данных просто не соответствует, поэтому попробуйте сохранить данные другим способом

while counter < num_passwords_user:
username_input = str(input("Enter username for the database: "))
password_input = str(input("Please enter your password for the database: "))
database =username_input ,password_input
0 голосов
/ 14 октября 2018

Это то, что вам нужно

def check(database, user, passw):
    if not(user in database):
        return True
    return not (database[user] == passw)

database = {}
while counter < num_passwords_user:
    username_input = str(input("Enter username for the database: "))
    password_input = str(input("Please enter your password for the database: "))
    database[username_input]=password_input
    counter += 1
    ask1 = input("Enter username to login: ")
    ask2 = input("Enter password to login: ")
    while check(database,ask1,ask2):
        print("Incorrect, try again.")
        ask1 = (input("Enter username: "))
        ask2 = input("Enter password: ")
    print("Access Granted")

второй цикл тоже не исправлял ask1 и ask2 правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...