[Python] if and
Pietro Brunetti
gunzapper a gmail.com
Lun 5 Mar 2018 15:02:07 CET
al posto della list comprehesion suggerisco un bel `any` -> `if
any(errors.values())`. any è una sorta di or aggreggato (reduce con or)
invece `all` è una sorta di `and` aggreggato. ( E sono utili quando uno
deve usare un sacco di or o di and)
Il giorno lun 5 mar 2018 alle ore 05:00 Karim <lemieliste a gmail.com> ha
scritto:
> 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
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20180305/9851fd91/attachment.html>
Maggiori informazioni sulla lista
Python