2017-08-15 100 views
-2

如何驗證輸入以檢查它是否至少包含1個數字,一個大寫字母和一個小寫字母。我看過類似的問題,他們似乎並不完全是我需要的東西,例如只檢查數字和拒絕信件,除了一個以上的數字,大寫字母和小寫字母外,我需要它。密碼驗證 - 至少一個大寫,一個小寫字母和一個數字

+2

https://stackoverflow.com/questions/7684815/regex-for-alphanumeric-with-at至少1個數字和1個字符 – user2341726

+3

到目前爲止您嘗試了什麼?請展示一些努力。 – Moberg

+0

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

回答

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

相關問題