Как получить значения в моем словаре, которые я создал в python, для использования вместо строк? - PullRequest
0 голосов
/ 22 ноября 2018

Ниже приведена сокращенная версия моего кода без всякой проверки.Я пишу программу, которая сообщает пользователю, насколько надежен его пароль, видя в итоге его общий счет.Если в пароле есть 3 буквы рядом друг с другом, и эти три буквы также находятся рядом друг с другом на клавиатуре «qwerty», то их общая оценка уменьшается на 5. Я создал словарь для назначения каждой буквы.значение на клавиатуре, а затем, если две последовательные буквы в пароле имеют разницу 1, это означает, что на клавиатуре 3 строки подряд.Тем не менее, я продолжаю получать

ValueError: invalid literal for int() with base 10:

Я действительно не знаю, как использовать словари, поэтому любая помощь очень ценится!

password=str(input("Please enter a password with more than 4 digits, and it should only be letters:"))
score=0
keyboard={'Q':1,'q':1,'W':2,'w':2,'E':3,'e':3,'R':4,'r':4,'T':5,'t':5,'Y':6,'y':6,'U':7,'u':7,'I':8,'i':8,'O':9,'o':9,'P':10,'p':10,'A':12,'a':12,'S':13,'s':13,'D':14,'d':14,'F':15,'f':15,'G':16,'g':16,'H':17,'h':17,'J':18,'j':18,'K':19,'k':19,'L':20,'l':20,'Z':22,'z':22,'X':23,'x':23,'C':24,'c':24,'V':25,'v':25,'B':26,'b':26,'N':27,'n':27,'M':28,'m':28}
for n in range ((len(password))-2):
    if (int(password[n+1])-int(password[n])==1) and (int(password[n+2])-int(password[n+1]==1)):
        score=score-5
        print(score)

1 Ответ

0 голосов
/ 22 ноября 2018

Если ваш password ввод только буквы , то следующая строка выдаст ошибку.

int(password[n+1])

, так же как и int(password[n]) и все остальные intслепки.Причина этого в том, что вы переводите нецифровые символы в int.Вот что вызывает ошибку, которую вы видите.

Я верю , ваше намерение состоит в том, чтобы сделать

int(keyboard[password[n+1]]) - int(keyboard[password[n]]) == 1

, но с тех пор значения вашего словаря keyboardуже int, тогда приведение int в вашем операторе if не требуется.

keyboard[password[n+1]] - keyboard[password[n]] == 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...