проверка входа с python словарь - PullRequest
0 голосов
/ 17 марта 2020

ребята, кто-нибудь, помогите мне с решением для проверки, которое выглядит следующим образом:

# class mates
#small database with a Dic
c_m = {
'lod':123,
'ele':345,
'ali':456,
'abq':567,
'amr':678
}

login = input("please enter user name: ")
password = input("please enter {} password ".format(login))

мне нужно проверить, существует ли ключ входа в Di c, если да, проверьте, соответствует ли пароль значению ключа в Di c, если да, Pass Pass еще, Pass

Ответы [ 4 ]

1 голос
/ 17 марта 2020
c_m = {
'lod':123,
'ele':345,
'ali':456,
'abq':567,
'amr':678
}

login = input("please enter user name: ")
password = input("please enter {} password ".format(login))

if login in c_m and c_m[login] == int(password):
    print("good")
else:
    print("bad")

Кроме того, я бы посоветовал вам получить пропуск таким образом.

from getpass import getpass
password = getpass()
0 голосов
/ 17 марта 2020
# class mates
#small database with a Dic
c_m = {
    'lod':123,
    'ele':345,
    'ali':456,
    'abq':567,
    'amr':678
}

login = input("please enter user name: ")
password = input("please enter {} password ".format(login))

expected_password = c_m.get(login, None)

if expected_password == password:
    # password was correct
else:
    # incorrect password

вы можете использовать dict.get("key", default_value)

, это вернет пароль для любого введенного вами ключа, но если ключ отсутствует в словаре, вы можете вернуть значение по умолчанию. В этом случае я установил None по умолчанию и сравнил пароль с этим. Это не на 100% безопасно, так как я уверен, что есть условия, когда вход может вернуть None.

0 голосов
/ 17 марта 2020

спасибо, что напомнили мне, что решение было следующим:

c_m = {
'lod':123,
'ele':345,
'ali':456,
'abq':567,
'amr':678

}

login = input("please enter user name: ")
password = input("please enter {} password ".format(login))
pass2= int(password)

, если вход в c_m и c_m [login] == pass2: print ('Welcome { } '. format (login))

elif login in c_m and c_m[login] != pass2:
   print("{} please Check you Password".format(login))

else: print (' Что-то пошло не так! ')

0 голосов
/ 17 марта 2020

В python вы можете проверить, существует ли ключ просто с помощью ключевого слова in.

if login in c_m: # checks if the key exists
    if c_m[login] == password:
        #--correct authentication action here
else:
    #--incorrect auth
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...