Согласно Python документации
string.find (s, sub [, start [, end]]
Возвращает самый низкий индекс в s, где подстрока sub находится так, что sub полностью содержится в s [start: end]. Возвращает -1 при ошибке. Значения по умолчанию для начала и конца и интерпретация отрицательных значений такие же, как для ломтиков.
Делая это неправильным инструментом для работы.
Вы проверяете, все ли строки majuscule
, minuscule
и char
в пароле и возвращая индекс, по которому они находятся.
Вместо этого вам нужно перебирать символы и подсчитывать совпадения в строке пароля. Выход:
λ python run.py
Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): Stack
Invalid Length
Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): stackoverflow
No Caps
Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): StackOverflow
Invalid specials
Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): Stack@Overflow!