[Python] if and

Karim lemieliste a gmail.com
Lun 5 Mar 2018 05:00:16 CET


2018-03-05 10:05 GMT+11:00 Silvestro De Santis <silvestro.desantis a gmail.com
>:

> Sera lista in attesa dei risultati elettorali stavo provando le regex con
> python, ho fatto una semplice funzione che determina se la
> ​[...]
>
>
​L'errore e' negli and, dovevano essere degli or.

Dato che la funzione mi servira' in futuro per altri scopi, mi sono preso
la briga di implementarla​. Io l'avrei fatta cosi':


import re


def validate_password(password):
    """Validate the password based on "some" strenght rules

    :param str password: The password to validate
    :returns: a tuple with the validation result and the errors details if
the
              validation fails
    :rtype: (True, None) or (False, dict)

    .. todo:
        - The symbols check is not correct
    """
    lenght = len(password)
    digits = re.compile(r'\d+')
    uppers = re.compile(r'[A-Z]+')
    lowers = re.compile(r'[a-z]+')
    symbols = re.compile(r'\\|-|@|_|\?')

    errors = {
        'lowers': False if lowers.search(password) else True,
        'lenght': bool(lenght < 8),
        'digits': False if digits.search(password) else True,
        'symbols': False if symbols.search(password) else True,
        'uppers': False if uppers.search(password) else True,
    }

    if [error for error in errors.values() if error]:
        return False, errors
    else:
        return True, None


if __name__ == '__main__':
    pwd = input('Inserisci password: ')
    robust, errors = validate_password(pwd)

    if not robust:
        print('Errori trovati: %s' % errors.keys())
    else:
        print('Password robusta')


​Ciao​


-- 
Karim N. Gorjux
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20180305/84c59a65/attachment.html>


Maggiori informazioni sulla lista Python