當前位置:
首頁 > 知識 > python每天一個小練習-強壯的密碼

python每天一個小練習-強壯的密碼


強壯的密碼

題目來源

  • checkio

需求

斯蒂芬和索菲亞對於一切都使用簡單的密碼,忘記了安全性。請你幫助尼古拉開發一個密碼安全檢查模塊

  • 如果密碼的長度大於或等於10個符號,至少有一個數字,一個大寫字母和一個小寫字母,該密碼將被視為足夠強大
  • 密碼只包含ASCII拉丁字母或數字
  • 輸入: 密碼 (str, unicode)
  • 輸出: 密碼的安全與否,作為布爾值(bool),或者任何可以轉換和處理為布爾值的數據類型。你會在結果看到轉換後的結果(True 或 False)

分析

  • 對一個字元串進行解析:
    • 長度大於等於10
    • 有一個數字
    • 有一個大寫
    • 有一個小寫
    • 只是字母或數字
  • 反向思路:
    • 長度大於10的數字和字母組合字元串
    • 不都是數字
    • 不都是字母
    • 不都是大寫
    • 不都是小寫

想到的解決方式

  1. 正則表達式
  2. 字元串內置方法

代碼實現

  1. 第一種方式

    def check_strong(input_string): """ :param input_string: :return: """ import re flag = False r1 = re.search("[a-z]+",input_string) r2 = re.search("[A-Z]+",input_string) r3 = re.search("[0-9]+",input_string) r4 = re.search("w{10,}",input_string) if r1 and r2 and r3 and r4: flag = True return flag

  2. 第二種方式

    def check(psswd): """ :param psswd: :return: """ return ( (len(psswd) >= 10) and #長度大於等於10 (not psswd.islower) and # 不都是小寫 (有大寫) (not psswd.isupper) and # 不都是大寫 (有小寫) (not psswd.isalpha) and #不都是字母(有數字) (not psswd.isdigit) and # 不都是數字(有字母) (psswd.isalnum)) # 只是數字和字母

知識點正則表達式字元串內置方法

  1. str.isalnum:至少有一個字元並且所有的字元都是字母或者數字則返回True,否則返回False(判斷是否含有標點符號等特殊字元)

  2. str.isalpha:至少有一個字元並且所有的字元都是字母則返回True,否則返回False(判斷全是link字母,不區分大小寫)

  3. str.isdecimal:如果str中只包含十進位數字則返回True,否則返回False

  4. str.isdigit:如果str中只包含數字則返回True,否則返回F

  5. str.islower:如果str中至少包含一個區分大小寫的字元,並且所有的的這些字元(區分大小寫的)字元都是小寫則返回T,否則返回F

  6. str.isupper;如果str中至少包含一個區分大小寫的字元,並且所有的的這些字元(區分大小寫的)字元都是大寫則返回T,否則返回F

  7. str.lstrip:裁掉str左邊的空格

  8. str.rstrip:裁掉str右邊的空格

  9. str.upper:轉換str中的小寫字母為大寫

  10. str.lower:轉換str中的大寫字母為小寫

  11. str.capitalize:把字元串的第一個字元大寫

  12. str.swapcase:反轉大小寫

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

EF之通過不同條件查找去重複
Github 開源:高效好用的對象間屬性拷貝工具:升訊威 Mapper
Java 動態載入Jar包,並使用

TAG:科技優家 |

您可能感興趣

每天一句口語練習:Just to be on the safe side
每天一句口語練習:Never been a big fan of it
每天一句口語練習:It can be a killer
每天一句口語練習:There are too many people here
每天一句口語練習:You can call me any time
Python練習-簡單爬蟲
每天一句口語練習:Wake me up at seven tomorrow
每天一句口語練習:Let me see
每天一句口語練習:Would you give me a discount?
Kobe Bryant 建議 Ben Simmons 每天練習投籃十小時: 否則他的生涯會在遺憾中結束
練習 16-18 Learn Python 3 The Hard Way
練習 13-15 Learn Python 3 The Hard Way
70個NumPy練習:在Python下一舉搞定機器學習矩陣運算
Python:數組練習
偶像練習生打call 黑科技Panasonic Beauty百年限定EH-NA98Q
如何練習豎叉和橫叉?How to achieve your splits?
《偶像練習生》,please pick up!
tesseract-OCR字型檔練習
《偶像練習生》張藝興多次強調balance,黑粉吐槽是模仿freestyle
張藝興偶像練習生,既freestyle之後,balance也火了