執行環境:python2.7
需求如下:
"""檢查哪個字串用密碼合適。
1.密碼至少在8字以上20字以下
2.密碼由英文本母,數字和特殊文字組成
3. 至少應包括兩個數字
4.應包括乙個以上的大寫字母
5.特殊文字只能用( ___ ? !)三個
6.以密碼是否合適為結果返還。 此時不適合時,詳細理由也一併輸出,
- 不超過8個字或超過20個字:1
- 2個以下數字:2
- 沒有大寫字母:3
- 無特殊文字:4
- 其他不可接受的文字:5
7. 規則的優先順序是:
- 字數檢查
- 英文本母檢查
- 數字檢查
- 大寫字母檢查
- 特殊文字檢查
def isvalid(passwd) :
『』』 input : password
return value : isvalid – true or false reason – 1 ~ 5
『』』pass # 這部分完成
#main
password = input('enter your password: ')
pass # 這部分完成
enter your password: aqwefrji52!
有效口令。可以使用。
enter your password: qoiuwer?da3
密碼無效!請在密碼中至少包含兩個數字。
enter your password: qoieqwoh458%$
密碼無效!包含無效字元。
enter your password: a451asfㅁ니ㅏㅓㄻ
密碼無效!包含無效字元。
enter your password: a45alskfjlfas
密碼無效!請在密碼中至少包含乙個字元。
"""
**實現:
# -*- coding: utf-8 -*-
def isvalid(passwd):
shuzi_num = 0
lower_num = 0
upper_num = 0
teshuzifu_num = 0
wuxiaozifu_num = 0
# 字數檢查
if len(passwd) > 20 or len(passwd) < 8:
return "密碼無效:不超過8個字或超過20個字:1"
# 包含字元數量統計
for s in passwd:
if s.isdigit():
shuzi_num += 1
elif s.islower():
lower_num += 1
elif s.isupper():
upper_num += 1
elif s == "_" or s == "?" or s == "!":
teshuzifu_num += 1
else:
wuxiaozifu_num += 1
# 英文本母檢查
if lower_num <= 0 and upper_num <= 0:
return "密碼無效:未包含英文本母"
# 數字檢查
if shuzi_num < 2:
return "密碼無效:數字少於兩個:2"
# 大寫字母檢查
if upper_num < 1:
return "密碼無效:沒有大寫字母:3"
# 特殊文字檢查
if wuxiaozifu_num > 0:
return "密碼無效:包含無效字元:5"
if teshuzifu_num <= 0:
return "密碼無效:未包含特殊文字:4"
else:
return "有效口令。可以使用。"
if __name__ == "__main__":
# 接收控制台輸入
password = raw_input('enter your password: ')
print "password: ", password
# 判斷密碼是否符合要求
print isvalid(password)
Python判斷字串是否包含指定字串的方法
def main str abcdefgh re cd flag re in strprint flag if name main main 結果 true1.find 檢測字串中是否包含子字串,如果指定 beg 開始 和 end 結束 範圍內,則檢查是否包含在指定範圍內,如果包含子字串,返回第一次...
判斷字串 python判斷字串是否包含字母
第一種方法 使用正規表示式判斷字串是否包含字母 coding utf 8 import re def check str my re re.compile r a za z re.s res re.findall my re,str if len res print u 含有英文本元 else pr...
python 判斷字串是否包含子字串
第一種方法 in,主要是利用物件判斷 string helloworld if world in string print exist else print not exist 第二種方法 find string helloworld if string.find world 5 5的意思是worl...