2017-07-21 15 views
-1

私は、プログラムが有効なパスワードが与えられるまでユーザーに有効なパスワードを要求し続けるパスワード検証の割り当てに取り組んでいます。私は特殊文字の入力文字列をチェックするのに問題があります。現在、プログラムは特殊文字でなくてもパスワードを受け入れます。また、私は3回失敗した後、ループを終了しますがしてカウントを実装するためにどのループを確認していない機能を実装したいと思います ここに私のコードです:。Pythonでのパスワード検証での特殊文字の特定

import re 

specialCharacters = ['$', '#', '@', '!', '*'] 

def passwordValidation(): 
    while True: 
     password = input("Please enter a password: ") 
     if len(password) < 6: 
      print("Your password must be at least 6 characters.") 
     elif re.search('[0-9]',password) is None: 
      print("Your password must have at least 1 number") 
     elif re.search('[A-Z]',password) is None: 
      print("Your password must have at least 1 uppercase letter.") 
     elif re.search('specialCharacters',password) is None: 
      print("Your password must have at least 1 special character ($, #, @, !, *)") 
     else: 
      print("Congratulations! Your password is valid.") 
      break 
passwordValidation() 
+0

あなたのコードでは、パスワードに「specialCharacters」という単語が含まれているかどうかがチェックされます。まず、その周りの引用符を削除します。次に、変数の値を正規表現 'specialCharacters = r" [\ $#@!\ *] "'に変換します。 – DyZ

答えて

0

のための正規表現を使用する必要はありませんとてもシンプルなもの。方法:

elif not any(c in specialCharacters for c in password):