2017-08-07 2 views
0

私のスクリプトには、引数を取得し、それをいくつかの変数と比較して、パスワードの強度が適切かどうかを調べる関数があります。パスワードが適切か不適切かを入力するたびに、パスワードが弱すぎることが返されます。以下のコード:python - パスワードチェッカー関数は常に弱いパスワードを返す

def check_password(_passw): 

    length = len(_passw) < 8 
    num = re.search(r'\d', _passw) is None 
    uppercase = re.search(r"[A-Z]", _passw) is None 
    lowercase = re.search(r"[a-z]", _passw) is None 

    suitable = not (length or num or uppercase or lowercase) 

    if _passw is not suitable: 
     print('Password weak, try again') 
     sign_up() 

    else: 
     print('Password accepted') 
+0

ヒント: 'suitable'はブール値です:' True'または 'False'ですが、' _passw'は文字列です。 –

答えて

3
if _passw is not suitable: 

本当にあまりにも口語です。あなたは意味

if not suitable: 

編集:
2つの変数が同じメモリ位置(別称、インスタンス)を指している場合、Pythonのテストでオペレータが「です」。これらの2つの変数の値は比較されません。例:here

+1

はい、 '_passw is not suitable'は' _passw'と 'suitable'が同じオブジェクトへの参照ではないことを意味します。彼らは決してないだろう。 – kindall

関連する問題