среда, 17 апреля 2013 г.

Checkio. Домашний пароль.

Сделать проверку безопасности пароля. Пароль будет считаться достаточно сильным, если его длина больше или равна 10 символам, имеет хотя бы одну цифру, одну букву верхнего регистра, и одну строчную.

Input: Строка, которая является паролем.
Output: True, если пароль безопасен.

checkio('A1213pokl')==False
checkio('bAse730onE')==True
checkio('asasasasasasasaas')==False
checkio('QWERTYqwerty')==False
checkio('123456123456')==False
checkio('QwErTy911poqqqq')==True
Решение:
import re

def checkio(data):
    'Return True if password strong and False if not'
    c = re.compile(r'(?=.{10,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])')
    return bool(c.match(data))
    

if __name__ == '__main__':
    assert checkio('A1213pokl')==False, 'First'
    assert checkio('bAse730onE4')==True, 'Second'
    assert checkio('asasasasasasasaas')==False, 'Third'
    assert checkio('QWERTYqwerty')==False, 'Fourth'
    assert checkio('123456123456')==False, 'Fifth'
    assert checkio('QwErTy911poqqqq')==True, 'Sixth'
    print('All ok')

Комментариев нет:

Отправить комментарий