Например, установлены такие требования к паролю:
- не меньше 8 символов
- должна присутствовать хотя бы одна цифра [0-9]
- должна присутствовать хотя бы одна заглавная буква [A-Z]
- должна присутствовать хотя бы одна строчная буква [a-z]
>>> for c in range( ord('a'), ord('z')+1 ):
>>> print chr(c),
чтобы получить список [a-z]:
>>> map(chr, range(97, 123))
или
>>> map(chr, range(ord('a'), ord('z')))
Пример реализации. Функция возвращает False, если пароль не удовлетворяет требованиям, или True если ОК:
>>> return map(chr, range(ord(v1), ord(v2)))
>>> digit = False
>>> upper = False
>>> lower = False
>>> if len(psw) >= 8:
>>> for x in psw:
>>> if x in lst_seq('0','9'):
>>> if x in lst_seq('A', 'Z'):
>>> if x in lst_seq('a', 'z'):
>>> return digit and upper and lower
для Python 3.3
>>> def check_psw(psw):
>>> return (len(psw) >= 8 and
>>> any([ch.isupper() for ch in psw]) and
>>> any([ch.isdigit() for ch in psw]) and
>>> any([ch.islower() for ch in psw]))
>>> import re
>>> def check_psw(psw):
>>> return len(psw) >= 8 and
или
>>> import re
>>> def check_psw(psw):
или
>>> import re
>>> def check_psw(psw):
>>> if len(psw) < 8:
>>> return False
>>> for r in ('[a-z]', '[A-Z]', 'd'):
>>> if re.search(r, psw) is None:
>>> return False
>>> return True
Вариант с set для Python 3.3:
>>> import string
>>> upper = set(string.ascii_uppercase)
>>> lower = set(string.ascii_lowercase)
>>> digits = set(string.digits)
>>> def check_psw(psw):
>>> letters = set(psw)
>>> return bool(len(psw) >= 8 and upper & letters and lower & letters and digits & letters)
Автор: Viktor




