python每天一個小練習-強壯的密碼
強壯的密碼
題目來源
- checkio
需求
斯蒂芬和索菲亞對於一切都使用簡單的密碼,忘記了安全性。請你幫助尼古拉開發一個密碼安全檢查模塊
- 如果密碼的長度大於或等於10個符號,至少有一個數字,一個大寫字母和一個小寫字母,該密碼將被視為足夠強大
- 密碼只包含ASCII拉丁字母或數字
- 輸入: 密碼 (str, unicode)
- 輸出: 密碼的安全與否,作為布爾值(bool),或者任何可以轉換和處理為布爾值的數據類型。你會在結果看到轉換後的結果(True 或 False)
分析
- 對一個字元串進行解析:
- 長度大於等於10
- 有一個數字
- 有一個大寫
- 有一個小寫
- 只是字母或數字
- 反向思路:
- 長度大於10的數字和字母組合字元串
- 不都是數字
- 不都是字母
- 不都是大寫
- 不都是小寫
想到的解決方式
- 正則表達式
- 字元串內置方法
代碼實現
第一種方式
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
第二種方式
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)) # 只是數字和字母
知識點正則表達式字元串內置方法
str.isalnum
:至少有一個字元並且所有的字元都是字母或者數字則返回True,否則返回False(判斷是否含有標點符號等特殊字元)str.isalpha
:至少有一個字元並且所有的字元都是字母則返回True,否則返回False(判斷全是link字母,不區分大小寫)str.isdecimal
:如果str中只包含十進位數字則返回True,否則返回Falsestr.isdigit
:如果str中只包含數字則返回True,否則返回Fstr.islower
:如果str中至少包含一個區分大小寫的字元,並且所有的的這些字元(區分大小寫的)字元都是小寫則返回T,否則返回Fstr.isupper
;如果str中至少包含一個區分大小寫的字元,並且所有的的這些字元(區分大小寫的)字元都是大寫則返回T,否則返回Fstr.lstrip
:裁掉str左邊的空格str.rstrip
:裁掉str右邊的空格str.upper
:轉換str中的小寫字母為大寫str.lower
:轉換str中的大寫字母為小寫str.capitalize
:把字元串的第一個字元大寫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也火了