誰かが文字列をテストする方法についてアイデアを与えることができます:
- 少なくとも 1 つの大文字を含む
- 少なくとも 1 つの小文字を含む
- 少なくとも 1 つの数字を含む
- 最小長は 7 文字です
誰かが文字列をテストする方法についてアイデアを与えることができます:
if (any(x.isupper() for x in s) and any(x.islower() for x in s)
and any(x.isdigit() for x in s) and len(s) >= 7):
別の方法は、ルールを (ラムダ) 関数のリストとして表現することです
rules = [lambda s: any(x.isupper() for x in s), # must have at least one uppercase
lambda s: any(x.islower() for x in s), # must have at least one lowercase
lambda s: any(x.isdigit() for x in s), # must have at least one digit
lambda s: len(s) >= 7 # must be at least 7 characters
]
if all(rule(s) for rule in rules):
...
あなたのコメントについて。エラー メッセージを作成するには
errors = []
if not any(x.isupper() for x in password):
errors.append('Your password needs at least 1 capital.')
if not any(x.islower() for x in password):
errors.append(...)
...
if errors:
print " ".join(errors)