パスワードに含まれる文字を繰り返して、仕様を満たしているかどうかを判断できるプログラムを作成しようとしています。 少なくとも7文字、大文字1文字、小文字1文字、および1桁が必要です。ここに私が持っているものがあります:Pythonは文字列内のすべての文字を反復しません( 'None'を返します)。
def validPass(password): # >= 7 chars, one upper, one lower, one digit
for ch in password:
if ch.isdigit():
if ch.isupper():
if ch.islower():
if len(password) >= 7:
print ' Your password is valid.'
else:
print 'Your password is not the correct length.'
else:
if ch.isupper():
if ch.islower():
if len(password) >= 7:
print ' Your password is valid.'
break
else:
print 'Your password is not the correct length.'
else:
print 'Your password is not the correct length.'
else:
if ch.islower():
if len(password) >= 7:
print ' Your password is valid.'
break
else:
print 'Your password is not the correct length.'
else:
if len(password) >= 7:
print ' Your password is valid.'
break
else:
print 'Your password is not the correct length.'
print validPass('$$$$$$$')
私はここで間違った木を鳴らしています。また、「$$$$$$$」を提出すると、私は次のようになります。
Your password is valid.
None
誰でも手伝いできますか?
あなたの唯一の本当のテストは、すべての複雑なネストされた 'if'ステートメントがなぜ' len(password)> = 7'であるかのようです。あなたは 'return'何もしないので、あなたは' validPass( '$$$$$$$')を印刷して印刷しますか? – AChampion