2017-08-15 18 views
-2

少なくとも1つの数字、1つの大文字と1つの小文字が含まれているかどうかを確認するために入力を検証する方法を教えてください。私は同様の質問を見てきましたが、数字の確認や拒否など、必要なものではないようです。複数の数字、大文字、小文字を除いて必要です。パスワード検証 - 少なくとも1つの大文字、1つの小文字、1つの数字

+2

https://stackoverflow.com/questions/7684815/regex-for-alphanumeric-with-at -Last-1-number-and-1-character – user2341726

+3

これまでに何を試しましたか?少し努力してください。 – Moberg

+0

https://stackoverflow.com/questions/41117733/validation-a-password-python duplicate? –

答えて

0

あなたはassertany()stringと組み合わせて使用​​することができ、内蔵モジュールを次のように:

import string 

password = '1Aa' 

try: 
    assert any(i in string.ascii_lowercase for i in password) 
    assert any(i in string.ascii_uppercase for i in password) 
    assert any(i in string.digits for i in password) 
except AssertionError as e: 
    raise Exception('Invalid password!') 
0
import re 
def passwordagain(): 
password() 

def password(): 
     print() 
     password = input("Enter a secure password: ") 
     if re.search('[A-Z]',password) is None: 
      print("Password must contain at least one capital letter and one number.") 
      passwordagain() 
     elif re.search('[0-9]',password) is None: 
      print("Password must contain at least one capital letter and one number.") 
      passwordagain() 
     elif re.search('[a-z]',password) is None: 
      print("Password must contain at least one capital letter and one number.") 
      passwordagain()   
     else: 
      filename = ("password."); 
      with open (filename, "w") as f: 
       f.write (password) 
      print() 
      print("Password saved") 
+0

'passwordagain()'とは何ですか? – asongtoruin

+0

申し訳ありませんが、それは関数をループする単なる方法です。 – user8435959

+0

それは無限ループを開始する非常に賢明な方法ではありません。 'while True:' - [この質問と回答](https://stackoverflow.com/questions/3754620/a-basic-question-about-while-true)の助けが役立つかもしれません。 – asongtoruin

関連する問題