Как отобразить все неправильно с вводом для тестера паролей - PullRequest
0 голосов
/ 22 марта 2019

Моя программа работает отлично, но вместо того, чтобы возвращать ВСЕ неправильно с паролем, она вернет только одну проблему назад.

Пример: Пароль ASD123 (проблемы не более 10 символов, без символов). Программа возвращает только «Пароль меньше 10 символов»

passwordisokk = True

def passwordisOK():
    while True:
        passwordisokk = input("Please enter a password so we can validate:")
        if len(passwordisokk) < 10:
            print(" Your password should be 10 characters,please enter more characters")
            passwordisokk = False
            print(passwordisokk)
        elif re.search("[0-9]",passwordisokk) is None:
            print("Your password needs a number,please enter one")
            passwordisokk = False
            print(passwordisokk)
        elif re.search("[A-Z]",passwordisokk) is None:
            print(" Your password needs a capital letter,please enter one")
            passwordisokk = False
            print(passwordisokk)
        elif re.search("[$,#,%,&,*]",passwordisokk) is None:
            print(" You password needs one of these symbols:$,#,%,&,*. Please enter one")
            passwordisokk = False
            print(passwordisokk)
        elif re.search("[ ]",passwordisokk):
            passwordisokk = False
            print("No spaces when entering your password please")
            print(passwordisokk)
        else:
            passwordisokk = True
            print(passwordisokk)
            break
passwordisOK()

1 Ответ

3 голосов
/ 22 марта 2019

Просто измените операторы elif и else на if.

import re

passwordisokk = True

def checkPasswordisOK():
    while True:
        password = input("Please enter a password so we can validate:")
        if len(password) < 10:
            print(" Your password should be 10 characters,please enter more characters")
            passwordisokk = False
            print(passwordisokk)
        if re.search("[0-9]",password) is None:
            print("Your password needs a number,please enter one")
            passwordisokk = False
            print(passwordisokk)
        if re.search("[A-Z]",password) is None:
            print(" Your password needs a capital letter,please enter one")
            passwordisokk = False
            print(passwordisokk)
        if re.search("[$,#,%,&,*]",password) is None:
            print(" You password needs one of these symbols:$,#,%,&,*. Please enter one")
            passwordisokk = False
            print(passwordisokk)
        if re.search("[ ]",password):
            passwordisokk = False
            print("No spaces when entering your password please")
            print(passwordisokk)
        if not passwordisokk:
            passwordisokk = True
            print(passwordisokk)
            break
checkPasswordisOK()
...