python isupper需要调包吗_密码强度等级
1
#?思路:將統(tǒng)計(jì)情況放主函數(shù)中一起寫,避免分開寫時(shí)多次遍歷密碼字符串。
while?True:
try:
password?=?input().strip()
score?=?0??#?初始化得分為0
#?長(zhǎng)度得分
if?len(password)?<=?4:
score?+=?5
elif?5?<=?len(password)?<=?7:
score?+=?10
else:
score?+=?25
#?字母、數(shù)字、符號(hào)統(tǒng)計(jì)(是否出現(xiàn)過(guò)、出現(xiàn)的個(gè)數(shù))
alpha,?Alpha,?digit,?digit_num,?symbol,?symbol_num?=?0,?0,?0,?0,?0,?0
for?ch?in?password:
if?ch.islower():
alpha?=?1
elif?ch.isupper():
Alpha?=?1
elif?ch.isdigit():
digit?=?1
digit_num?+=?1
else:
symbol?=?1
symbol_num?+=?1
#?字母得分
if?(alpha?and?not?Alpha) or (Alpha?and?not?alpha):
score?+=?10
elif?alpha?and?Alpha:
score?+=?20
#?數(shù)字得分
if?digit_num?==?1:
score?+=?10
elif?digit_num?>?1:
score?+=?20
#?符號(hào)得分
if?symbol_num?==?1:
score?+=?10
elif?symbol_num?>?1:
score?+=?25
#?獎(jiǎng)勵(lì)得分
#?此寫法錯(cuò)誤,本該屬于第三種加分的情況被第二種加分情況攔截住了,加成了第二種情況的分?jǐn)?shù)。
#?if?(alpha or Alpha)?and?digit?and?not?symbol:
#?????score?+=?2
#?elif?(alpha or Alpha)?and?digit?and?symbol:
#?????score?+=?3
#?elif?alpha?and?Alpha?and?digit?and?symbol:
#?????score?+=?5
if?alpha?and?Alpha?and?digit?and?symbol:
score?+=?5
elif?(alpha or Alpha)?and?digit?and?symbol:
score?+=?3
elif?(alpha or Alpha)?and?digit:
score?+=?2
#?分?jǐn)?shù)等級(jí)
if?score?>=?90:
print('VERY_SECURE')
elif?score?>=?80:
print('SECURE')
elif?score?>=?70:
print('VERY_STRONG')
elif?score?>=?60:
print('STRONG')
elif?score?>=?50:
print('AVERAGE')
elif?score?>=?25:
print('WEAK')
else:
print('VERY_WEAK')
except:
break
編輯于 2020-12-28 18:12:18
回復(fù)(0)
0
import?re
import?sys
import?traceback
others?=?r"[!\"#\$%&\'\(\)\*\+,-\./:;<=>\?@\[\\\]\^_`\{\|\}~]"
def?cal_len(p):
l?=?len(p)
return?5?if?l<5?else?10?if?l<8?else?25
def?cal_c(p):
lowers?=?re.findall(r"[a-z]",?p)
uppers?=?re.findall(r"[A-Z]",?p)
return?0?if?not?lowers?and?not?uppers?else?20?if?lowers?and?uppers?else?10
def?cal_n(p):
nums?=?re.findall(r"[0-9]",?p)
return?0?if?not?nums?else?10?if?len(nums)==1?else?20
def?cal_o(p):
l?=?re.findall(others,?p)
return?0?if?not?l?else?10?if?len(l)==1?else?25
def?award(p):
if?cal_n(p):
if?cal_c(p):
if?cal_o(p):
if?cal_c(p)?==?20:
return?5
return?3
return?2
return?0
def?cal(p):
return?cal_len(p)?+?cal_c(p)?+?cal_n(p)?+?cal_o(p)?+?award(p)
def?judge(p):
score?=?cal(p)
return?("VERY_SECURE"?if?score?>=?90
else?"SECURE"?if?score?>=?80
else?"VERY_STRONG"?if?score?>=?70
else?"STRONG"?if?score?>=?60
else?"AVERAGE"?if?score?>=?50
else?"WEAK"?if?score?>=?25
else?"VERY_WEAK"
)
try:
for?p?in?sys.stdin:
print(judge(p.strip()))
except?Exception?as?e:
print(traceback.format_exc())
發(fā)表于 2020-12-13 01:38:02
回復(fù)(0)
0
while?True:
try:
s?=?input()
password?=?[]
password.extend(s)
p1,p2,p3,p4?=?[],[],[],[]
for?i?in?password:
if?i.isupper():
p1.append(i)
elif?i.islower():
p2.append(i)
elif?i.isdigit():
p3.append(i)
else:
p4.append(i)
score?=?[]
if?len(s)?<=?4:
score.append(5)
elif?5?<=?len(s)?<=?7:
score.append(10)
else:
score.append(25)
if?p1&nbs***bsp;p2:
if?len(p1)?==?0&nbs***bsp;len(p2)?==?0:
score.append(10)
else:
score.append(20)
if?len(p3)?==?1:
score.append(10)
elif?len(p3)?>?1:
score.append(20)
if?len(p4)?==?1:
score.append(10)
elif?len(p4)?>?1:
score.append(25)
if?p1?and?p2?and?p3?and?p4:
score.append(5)
elif?(p1&nbs***bsp;p2)?and?p3?and?p4:
score.append(3)
elif?(p1&nbs***bsp;p2)?and??p3:
score.append(2)
result?=?sum(score)
if?result?>=?90:
print('VERY_SECURE')
elif?result?>=?80:
print('SECURE')
elif?result?>=?70:
print('VERY_STRONG')
elif?result?>=?60:
print('STRONG')
elif?result?>=?50:
print('AVERAGE')
elif?result?>=?25:
print('WEAK')
elif?result?>=?0:
print('VERY_WEAK')
except:break
編輯于 2020-12-01 14:49:45
回復(fù)(0)
0
def?changdu(p):
if?len(p)?<=?4:
return?5
elif?5?<=?len(p)?<=?7:
return?10
elif?len(p)?>=?8:
return?25
def?zimu(p):
n?=?0
for?i?in?p:
if?i.isalpha():
n+=1
if?n?==?0:
return?0
elif?p.upper()?==?p&nbs***bsp;p.lower()?==?p:
return?10
else:
return?20
def?shuzi(p):
n?=?0
for?i?in?p:
if?i.isdigit():
n+=1
if?n==0:
return?0
elif?n==1:
return?10
else:
return?20
def?fuhao(p):
n?=0
for?i?in?p:
if?not?i.isdigit()?and?not?i.isalpha():
n+=1
if?n?==?0:
return?0
elif?n==?1:
return?10
else:
return?25
def?jaingli(p):
a?=?0#字母
b?=?0#數(shù)字
c?=?0#符號(hào)
for?i?in?p:
if?p.isalpha():
a+=1
elif?p.isdigit():
b+=1
else:
c+=1
if?a!=0?and?b!=0?and?c==0:
return?2
elif?a!=0?and?b!=0?and?c!=0:
return?3
else:
return?5
while?True:
try:
p?=?input()
s_changdu?=?changdu(p)
s_zimu?=?zimu(p)
s_shuzi?=?shuzi(p)
s_fuhao?=?fuhao(p)
s_jiangli?=?jaingli(p)
s_sum?=?s_changdu?+?s_zimu?+?s_shuzi?+?s_fuhao?+s_jiangli
if?s_sum>=90:
print("VERY_SECURE")
elif?s_sum>=80:
print("SECURE")
elif?s_sum>=70:
print("VERY_STRONG")
elif?s_sum>=60:
print("STRONG")
elif?s_sum>=50:
print("AVERAGE")
elif?s_sum>=25:
print("WEAK")
else:
print("VERY_WEAK")
except:
break
編輯于 2020-11-20 12:13:19
回復(fù)(0)
0
#?2020年11月14日23:28:18
def?get_scord(password):
scord?=?0
#???驗(yàn)證密碼長(zhǎng)度
length?=?len(password)
#???長(zhǎng)度得分
if?length?<=?4:
scord?+=?5
elif?length?<=?7:
scord?+=?10
else:
scord?+=?25
#???驗(yàn)證密碼字母、數(shù)字、符號(hào)個(gè)數(shù)
lower?=?0
captial?=?0
number?=?0
symbol?=?0
for?i?in?range(length):
if?"a"<=password[i]<="z":
lower?+=?1
elif?"A"<=password[i]<="Z":
captial?+=?1
elif?"0"<=password[i]<="9":
number?+=?1
else:
symbol?+=?1
#???字母得分
if?lower>0?and?captial>0:
scord?+=?20
elif?lower?==?0?and?captial?==?0:
scord?+=?0
else:
scord?+=?10
#???數(shù)字得分
if?number?==?0:
scord?+=?0
elif?number?==?1:
scord?+=?10
else:
scord?+=?20
#???符號(hào)得分
if?symbol?==?0:
scord?+=?0
elif?symbol?==?1:
scord?+=?10
else:
scord?+=?25
#???獎(jiǎng)勵(lì)得分
if?lower>0?and?captial>0?and?number>0?and?symbol>0:
scord?+=?5
elif?(lower>0&nbs***bsp;captial>0)?and?number>0?and?symbol>0:
scord?+=?3
elif?(lower>0&nbs***bsp;captial>0)?and?number>0?and?symbol==0:
scord?+=?2
return?scord
while?True:
try:
password?=?input()
#???????獲取分?jǐn)?shù)
scord?=?get_scord(password)
#???????根據(jù)分?jǐn)?shù)判斷密碼等級(jí)
if?scord>=90:
print("VERY_SECURE")
elif?scord>=80:
print("SECURE")
elif?scord>=70:
print("VERY_STRONG")
elif?scord>=60:
print("STRONG")
elif?scord>=50:
print("AVERAGE")
elif?scord>=25:
print("WEAK")
elif?scord>=0:
print("VERY_WEAK")
except:
break
發(fā)表于 2020-11-15 00:24:11
回復(fù)(0)
0
條理清晰,簡(jiǎn)單易懂
while?True:
try:
s?=?input().strip()
p_len,?low,?upper,?digit,?ch?=?0,?0,?0,?0,?0
flag?=?0?#?四位二進(jìn)制標(biāo)記是否存在?0000?分別代表?字符?數(shù)字?大寫?小寫
for?i?in?s:
p_len?+=?1
if?i.islower():
low?+=?1
flag?|=?0b0001
elif?i.isupper():
upper?+=?1
flag?|=?0b0010
elif?i.isdigit():
digit?+=?1
flag?|=?0b0100
else:
ch?+=?1
flag?|=?0b1000
score1?=?5?if?p_len?<=?4?else?10?if?5?<=?p_len?<=?7?else?25
score2?=?0?if?flag?&?0b0011?==?0?else?20?if?flag?&?0b0011?==?3?else?10
score3?=?0?if?digit?==?0?else?10?if?digit?==?1?else?20
score4?=?0?if?ch?==?0?else?10?if?ch?==?1?else?25
score5?=?2?if?5?<=?flag?<=?7?else?3?if?13?<=?flag?<=?14?else?5?if?flag?==?15?else?0
score?=?score1?+?score2?+?score3?+?score4?+score5
res?=?('VERY_SECURE'?if?score?>=?90?else?'SECURE'?if?score?>=?80?else
'VERY_STRONG'?if?score?>=?70?else?'STRONG'?if?score?>=?60?else
'AVERAGE'?if?score?>=?50?else?'WEAK'?if?score?>=?25?else?'VERY_WEAK')
print(res)
except:
break
編輯于 2020-10-03 10:23:11
回復(fù)(0)
0
while True:
try:
str = input()
part1 = 0
part2 = 0
part3 = 0
part4 = 0
part5 = 0
length = len(str)
if length <= 4:
part1 = 5
elif length>=5 and length<=7 :
part1 = 10
else:
part1 = 25
numCount = 0
signCount = 0
lowerCount = 0
upperCount = 0
alphaCount = 0
for s in str:
if s.isdigit():
numCount = numCount+1
if not s.isdigit() and not s.isalnum():
signCount = signCount+1
if s.islower():
lowerCount = lowerCount+1
if s.isupper():
upperCount = upperCount+1
if s.isalpha():
alphaCount = alphaCount+1
if lowerCount == 0 and upperCount > 0:
part2 = 10
elif lowerCount > 0 and upperCount == 0:
part2 = 10
elif lowerCount > 0 and upperCount > 0:
part2 = 20
if numCount == 1:
part3 = 10
elif numCount > 1:
part3 = 20
if signCount == 1:
part4 = 10
elif signCount > 1:
part4 = 25
if part2 == 10 and part3 > 0 and part4 == 0:
part5 = 2
elif part2 == 10 and part3 > 0 and part4 > 0:
part5 = 3
elif part2 == 20 and part3 > 0 and part4 > 0:
part5 = 5
sum = part1+part2+part3+part4+part5
if sum >= 90:
print("VERY_SECURE")
elif sum >=80 and sum <90:
print("SECURE")
elif sum >=70 and sum <80:
print("VERY_STRONG")
elif sum >=60 and sum <70:
print("STRONG")
elif sum >=50 and sum <60:
print("AVERAGE")
elif sum >=25 and sum < 50:
print("WEAK")
else:
print("VERY_WEAK")
except:
break
發(fā)表于 2020-09-29 19:26:39
回復(fù)(0)
0
參考通過(guò)小伙伴的代碼
while?True:
try:
s?=?input()
l?=?len(s)
p?=?0
d?=?0
lower?=?0
upper?=?0
f?=?0
t?=?['0',?'0',?'0',?'0']
#?密碼長(zhǎng)度判斷
if?l?
p?+=?5
elif?l?
p?+=?10
else:
p?+=?25
for?i?in?range(0,?l):
if?s[i].isdigit():?#?數(shù)字判斷
t[0]?=?'1'
if?d?
d?+=?10
elif?s[i].isupper():?#?大小判斷
t[1]?=?'1'
if?lower?
lower?+=?10
elif?s[i].islower():?#?小寫判斷
t[2]?=?'1'
if?upper?
upper?+=?10
else:?#?符號(hào)判斷
t[3]?=?'1'
if?f?==?10:?#?2個(gè)即得滿25分,2個(gè)以上不執(zhí)行下述判斷
f?=?25
elif?f?==?0:?#?一個(gè)符號(hào)
f?=?10
p?+=?d?+?lower?+?upper?+?f
t_s?=?''.join(t)
#?建立獎(jiǎng)勵(lì)的判別標(biāo)準(zhǔn),采用0,?1來(lái)判斷十分方便
if?t_s?==?'1111':
p?+=?5
elif?t_s?==?'1011'&nbs***bsp;t_s?==?'1101':
p?+=?3
elif?t_s[1:2]?!=?'00':
p?+=?2
if?p?>=?90:
print('VERY_SECURE')
elif?p?>=?80:
print('SECURE')
elif?p?>=?70:
print('VERY_STRONG')
elif?p?>=?60:
print('STRONG')
elif?p?>=?50:
print('AVERAGE')
elif?p?>=?25:
print('WEAK')
else:
print('VERY_WEAK')
except:
break
發(fā)表于 2020-08-24 15:06:16
回復(fù)(0)
0
import?re
def?secure_level():
str1?=?input()
score?=?0
#?length
n?=?len(str1)
if?n?<=?4:
score?+=?5
elif?n?>=?5?and?n?<=?7:
score?+=?10
else:
score?+=?25
#?three?elements
char_lower?=?0
char_upper?=?0
nums?=?0
signs?=?0
#?char
temp?=?re.findall('[a-z]',?str1)
char_lower?=?len(temp)
if?char_lower:?score?+=?10
temp?=?re.findall('[A-Z]',?str1)
char_upper?=?len(temp)
if?char_upper:?score?+=?10
#?number
temp?=?re.findall('[0-9]',?str1)
nums?=?len(temp)
if?nums?==?1:
score?+=?10
elif?nums?>=?2:
score?+=?20
#?sign
signs?=?n?-?char_lower?-?char_upper?-?nums
if?signs?==?1:
score?+=?10
elif?signs?>=?2:
score?+=?25
#?reward
if?char_lower?and?char_upper?and?nums?and?signs:
score?+=?5
elif?(char_lower&nbs***bsp;char_upper)?and?nums?and?signs:
score?+=?3
elif?(char_lower&nbs***bsp;char_upper)?and?nums:
score?+=?2
if?score?>=?90:?return?'VERY_SECURE'
elif?score?>=?80:?return?'SECURE'
elif?score?>=?70:?return?'VERY_STRONG'
elif?score?>=?60:?return?'STRONG'
elif?score?>=?50:?return?'AVERAGE'
elif?score?>=?25:?return?'WEAK'
elif?score?>=?0:?return?'VERY_WEAK'
print(secure_level()) 有一個(gè)用例一直沒法通過(guò) → PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`
里面明明沒有數(shù)字為什么輸出最后得分會(huì)達(dá)到90分呢?
發(fā)表于 2020-08-01 13:05:49
回復(fù)(0)
0
while?True:
try:
key?=?input()
password?=?[]
p1,?p2,?p3,?p4?=?[],?[],?[],?[]
length_of_key?=?len(key)
for?i?in?range(0,?length_of_key):
if?key[i].isupper():
p1.append(key[i])
elif?key[i].islower():
p2.append(key[i])
elif?key[i].isdigit():
p3.append(key[i])
else:
p4.append(key[i])
score?=?0
if?len(key)?<=?4:
score?+=?5
elif?7?>=?len(key)?>=?5:
score?+=?10
else:
score?+=?25
if?p1&nbs***bsp;p2:
if?len(p1)?==?0&nbs***bsp;len(p2)?==?0:
score?+=?10
else:
score?+=?20
if?len(p3)?==?1:
score?+=?10
elif?len(p3)?>?1:
score?+=?20
if?len(p4)?==?1:
score?+=?10
elif?len(p4)?>?1:
score?+=?25
if?(p1&nbs***bsp;p2)?and?p3:
score?+=?2
elif?(p1&nbs***bsp;p2)?and?p3?and?p4:
score?+=?3
elif?p1?and?p2?and?p3?and?p4:
score?+=?5
if?score?>=?90:
print('VERY_SECURE')
elif?score?>=?80:
print('SECURE')
elif?score?>=?70:
print('VERY_STRONG')
elif?score?>=?60:
print('STRONG')
elif?score?>=?50:
print('AVERAGE')
elif?score?>=?25:
print('WEAK')
elif?score?>=?0:
print('VERY_WEAK')
except:
break
編輯于 2020-07-29 23:38:01
回復(fù)(0)
0
題不難,就是分類情況多了些
def get_score(s):
score, award = 0, 0
# mark標(biāo)記各類型個(gè)數(shù),分別是小寫字母,大寫字母,數(shù)字,符號(hào)個(gè)數(shù)
mark = [0] * 4
score += (len(s)<=4)*5 + (4< len(s) <8)*10+ (len(s)>=8)*25
for i in s:
if 'A' <= i <= 'Z':
mark[0] += 1
elif 'a' <= i <= 'z':
mark[1] += 1
elif '0' <= i <= '9':
mark[2] += 1
elif '!' <= i <= '~':
mark[3] += 1
score += (mark[0] >= 1)*10 + (mark[1] >= 1)*10
score += (mark[2] == 1)*10 + (mark[2] > 1)*25
score += (mark[3] == 1)*10 + (mark[3] > 1)*25
if mark[0]+mark[1] < 0:
award = 0
elif (mark[0]>0 and mark[1]>0) and (mark[2]>0 and mark[3]>0):
award = 5
elif mark[0]+mark[1] > 0 and (mark[2]>0 and mark[3]>0):
award = 3
elif mark[0]+mark[1] > 0 and mark[2]>0:
award = 2
score += award
if score >= 90:
print('VERY_SECURE')
elif score >= 80:
print('SECURE')
elif score >= 70:
print('VERY_STRONG')
elif score >= 60:
print('STRONG')
elif score >= 50:
print('AVERAGE')
elif score >= 25:
print('WEAK')
else:
print('VERY_WEAK')
while True:
try:
s= input()
get_score(s)
except:
break
編輯于 2020-07-18 20:04:31
回復(fù)(0)
1
while(True):
try:
s = input()
secLength = len(s)
upperCount = 0
lowerCount = 0
numCount = 0
score = 0
charCount = 0
for i in s:
# 數(shù)字個(gè)數(shù)
if(i.isdigit()):
numCount+=1
elif(i.islower()):
lowerCount+=1
elif(i.isupper()):
upperCount+=1
else:
charCount+=1
if (secLength <= 4):
score += 5
elif (5 < secLength <= 7):
score += 10
elif (secLength >= 8):
score += 25
if (numCount == 0):
score += 0
elif (numCount==1):
score += 10
elif (numCount >= 1):
score += 20
if(upperCount==1 and lowerCount==0):
score+=0
elif(upperCount==0 and lowerCount>0) or (upperCount>0 and lowerCount==0):
score+=10
elif(upperCount>0 and lowerCount>0):
score+=20
except:
break
if (charCount == 0):
score += 0
elif (charCount==1):
score += 10
elif (charCount >= 1):
score += 25
if(numCount>0 and (upperCount>0 or lowerCount>0) and charCount==0):
score+=2
elif (numCount > 0 and (upperCount > 0 or lowerCount > 0) and charCount > 0):
score += 3
elif (numCount > 0 and upperCount > 0 and lowerCount > 0 and charCount == 0):
score += 5
if score >= 90:
print('VERY_SECURE')
elif score >= 80:
print('SECURE')
elif score >= 70:
print('VERY_STRONG')
elif score >= 60:
print('STRONG')
elif score >= 50:
print('AVERAGE')
elif score >= 25:
print('WEAK')
else:
print('VERY_WEAK')
發(fā)表于 2020-07-11 12:11:55
回復(fù)(0)
0
Python3 暴力解法
import?sys
for?line?in?sys.stdin:
pwd?=?line.strip()
length_score?=?5?if?len(pwd)<=4?else?10?if?len(pwd)<=7?else?25
chars,?nums,?symbol?=?'',?'',?''
for?s?in?pwd:
if?s.isalpha():?chars?+=?s
elif?s.isnumeric():?nums?+=?s
else:?symbol?+=?s
cha_score?=?0?if?len(chars)==0?else?10?if?chars.isupper() or chars.islower()?else?25
num_score?=?10?if?len(nums)==1?else?25?if?len(nums)>1?else?0
symbol_score?=?0?if?len(symbol)==0?else?10?if?len(symbol)?==?1?else?25
if?cha_score==25?and?num_score?and?symbol_score: bonus?=?5
elif?cha_score?and?num_score?and?symbol_score: bonus?=?3
else: bonus?=?2
total_score?=?length_score?+?cha_score?+?num_score?+?symbol_score?+?bonus
if?total_score?>=?90:?print('VERY_SECURE')
elif?total_score?>=?80:?print('SECURE')
elif?total_score?>=?70:?print('VERY_STRONG')
elif?total_score?>=?60:?print('STRONG')
elif?total_score?>=?50:?print('AVERAGE')
elif?total_score?>=?25:?print('WEAK')
else:?print('VERY_WEAK')
編輯于 2020-04-29 21:46:08
回復(fù)(0)
0
#!usr/bin/env?python
while?1:
try:
string?=?raw_input()
count?=?0
upper?=?[]
lower?=?[]
digit?=?[]
other?=?[]
length?=?len(string)
if?length?<=?4:
count?+=?5
elif?length?>=?5?and?length?<=?7:
count?+=?10
elif?length?>=?8:
count?+=?25
for?i?in?range(length):
if?string[i].isalpha():
if?string[i]?>=?'a'?and?string[i]?<=?'z':
lower.append(string[i])
elif?string[i]?>=?'A'?and?string[i]?<=?'Z':
upper.append(string[i])
elif?string[i].isdigit():
if?string[i]?not?in?digit:
digit.append(string[i])
else:
if?string[i]?not?in?other:
other.append(string[i])
if?len(lower)?!=?0?and?len(upper)?!=?0:
count?+=?20
elif?len(lower)?+?len(upper)?!=?0:
count?+=?10
if?len(digit)?==?1:
count?+=?10
elif?len(digit)?>?1:
count?+=?20
if?len(other)?==?1:
count?+=?10
elif?len(other)?>?1:
count?+=?25
if?len(lower)?>?1?and?len(upper)?>?1?and?len(digit)?>?1?and?len(other)?>?1:
count?+=?5
elif?(len(lower)?>?1&nbs***bsp;len(upper)?>?1)?and?len(digit)?>?1?and?len(other)?>?1:
count?+=?3
elif?(len(lower)?>?1&nbs***bsp;len(upper)?>?1)?and?len(digit)?>?1:
count?+=?2
if?count?>=?90:
print?"VERY_SECURE"
elif?count?>=?80:
print?"SECURE"
elif?count?>=?70:
print?"VERY_STRONG"
elif?count?>=?60:
print?"STRONG"
elif?count?>=?50:
print?"AVERAGE"
elif?count?>=?25:
print?"WEAK"
elif?count?>=?0:
print?"VERY_WEAK"
except:
break
發(fā)表于 2020-04-12 19:10:17
回復(fù)(0)
0
簡(jiǎn)單粗暴,一條一條加。
while?True:
try:
ss?=?input()
def?level(grade):
if?grade>=90:
print('VERY_SECURE')
elif?grade>=80:
print('SECURE')
elif?grade>=70:
print('VERY_STRONG')
elif?grade>=60:
print('VSTRONG')
elif?grade>=50:
print('?AVERAGE')
elif?grade>=25:
print('WEAK')
else:
print('VERY_WEAK')
grade?=?0
if?len(ss)>=8:
grade?+=?25
elif?len(ss)<=4:
grede?+=?5
else:
grade+=10
f?=?0
F?=?0
nums?=?0
other?=?0
for?info?in?ss:
if?ord(info)<=ord('z')?and?ord(info)>=ord('a'):
f?+=?1
elif?ord(info)<=ord('Z')?and?ord(info)>=ord('A'):
F?+=1
elif?ord(info)<=ord('9')?and?ord(info)>=ord('0'):
nums?+=?1
else:
other?+=?1
if?len(ss)==f&nbs***bsp;len(ss)==F:
grade?+=?10
elif?f>0?and?F>0:
grade?+=?20
if?nums?==?1:
grade?+=?10
elif?nums?>1:
grade?+=?20
if?other?==?1:
grade?+=?10
elif?other?>1:
grade?+=?25
if?f>0?and?F>0?and?nums>0?and?other>0:
grade+=5
elif?(f>0&nbs***bsp;F>0)?and?nums>0?and?other>0:
gade?+=?3
elif?(f>0&nbs***bsp;F>0)?and?nums>0:
grade?+=?2
level(grade)
except:
break
發(fā)表于 2020-04-08 19:46:13
回復(fù)(0)
4
from?functools?import?reduce
while?True:
try:
s?=?input()
password?=?[]
password.extend(s)
p1,p2,p3,p4?=?[],[],[],[]
for?i?in?password:
if?i.isupper():
p1.append(i)
elif?i.islower():
p2.append(i)
elif?i.isdigit():
p3.append(i)
else:
p4.append(i)
score?=?[]
if?len(s)?<=?4:
score.append(5)
elif?5?<=?len(s)?<=?7:
score.append(10)
else:
score.append(25)
if p1 or p2:
if len(p1) == 0 or len(p2) == 0:
score.append(10)
else:
score.append(20)
if?len(p3)?==?1:
score.append(10)
elif?len(p3)?>?1:
score.append(20)
if?len(p4)?==?1:
score.append(10)
elif?len(p4)?>?1:
score.append(25)
if (p1 or p2) and? p3:
score.append(2)
elif (p1 or p2) and p3 and p4:
score.append(3)
elif p1 and p2 and p3 and p4:
score.append(5)
result?=?reduce(lambda?x,y?:?x+y,score)
if?result?>=?90:
print('VERY_SECURE')
elif?result?>=?80:
print('SECURE')
elif?result?>=?70:
print('VERY_STRONG')
elif?result?>=?60:
print('STRONG')
elif?result?>=?50:
print('AVERAGE')
elif?result?>=?25:
print('WEAK')
elif?result?>=?0:
print('VERY_WEAK')
except:break
編輯于 2020-03-30 10:45:58
回復(fù)(8)
0
def?longenth_score(pwd):#判斷長(zhǎng)度
if?len(pwd)<=4:
return?5
elif?len(pwd)>=8:
return?25
else:
return?10
def?char_score(pwd):#
pn?=0#這里都是用一個(gè)標(biāo)注位來(lái)先記錄字符的數(shù)量
for?p?in?pwd:
if?p.isalpha():
pn+=1
if?pn==0:
return?0
elif?pwd.isupper()&nbs***bsp;pwd.islower():
return?10
else:
return?20
def?num_score(pwd):
nn?=?0#這里記錄數(shù)字的個(gè)數(shù),方便下面的判斷
for?n?in?pwd:
if?n.isdigit():
nn?+=1
if?nn?==0:
return?0
elif?nn?==1:
return?10
else:
return?20
def?sym_score(pwd):
for?i?in?pwd:#這里要注意,排除掉字母和數(shù)字,剩下的判為符號(hào)
if?i.isdigit()&nbs***bsp;i.isalpha():
pwd?=?pwd.replace(i,'0')#這里用0代替字母和數(shù)字,是個(gè)靈活的判斷,下面count()需要保持一致
sn?=?len(pwd)?-?pwd.count('0')
if?sn?==?0:
return?0
elif?sn?==1?:
return?10
else:
return?25
def?reward_score(c_score,n_score,s_score):
if?c_score?==?20?and?n_score>0?and?s_score>0:
return?5
elif?c_score?==?10?and?n_score>0?and?s_score>0:
return?3
elif?c_score?>?10?and?n_score>0?and?s_score==0:
return?2
else:
return?0
def?pwd_level(total_score):
if?total_score>=90:
return?'VERY_WEAK'
elif?total_score?>=80:
return?'WEAK'
elif?total_score?>=70:
return?'VERY_STRONG'
elif?total_score?>=60:
return?'STRONG'
elif?total_score?>=50:
return?'AVERAGE'
elif?total_score?>=25:
return?'SECURE'
else:
return?'VERY_SECURE'
if?__name__?==?'__main__':
while?True:
try:
pwd?=?input()
l_score?=?longenth_score(pwd)
c_score?=?char_score(pwd)
n_score?=?num_score(pwd)
s_score?=?sym_score(pwd)
r_score?=?reward_score(c_score,n_score,s_score)
total_score?=?l_score+c_score+n_score+s_score+r_score
print(pwd_level(total_score))
except:
break
發(fā)表于 2020-01-31 17:47:50
回復(fù)(0)
0
pwd = str(input())
s = 0
#下面這三個(gè)變量代表數(shù)字,字母和符號(hào)的個(gè)數(shù)
num_n = 0
num_a = 0
num_s = 0
for i in pwd:
if i.isdigit() == True:
num_n += 1
elif i.isalpha() == True:
num_a += 1
else:
num_s += 1
if len(pwd) >= 8:
s += 25
elif len(pwd) >= 5:
s += 10
else:
s += 5
if num_a == 0:
s += 0
elif pwd.lower() == pwd or pwd.upper == pwd:
s += 10
else:
s += 20
if num_n == 0:
s += 0
elif num_n == 1:
s += 10
else:
s += 20
if num_s == 0:
s += 0
elif num_s == 1:
s += 10
else:
s += 25
if num_n != 0 and num_a != 0 and num_s == 0:
s += 2
if num_n != 0 and num_a != 0 and num_s != 0:
if pwd.lower() == pwd or pwd.upper == pwd:
s += 3
else:
s += 5
if s >= 90:
print('VERY_SECURE')
elif s >= 80:
print('SECURE')
elif s >= 70:
print('VERY_STRONG')
elif s >= 60:
print('STRONG')
elif s >= 50:
print('AVERAGE')
elif s >= 25:
print('WEAK')
else:
print('VERY_WEAK')
,,,
系統(tǒng)提示:
用例:
PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`
對(duì)應(yīng)輸出應(yīng)該為:
VERY_STRONG
你的輸出為:
空.請(qǐng)檢查一下你的代碼,有沒有循環(huán)輸入處理多個(gè)case.點(diǎn)擊查看如何處理多個(gè)case
但我自己運(yùn)行的時(shí)候輸入PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`,正常返回了VERY_STRONG
是哪里出了問(wèn)題?
'''
發(fā)表于 2020-01-10 20:24:20
回復(fù)(0)
3
def?longenth_score(pwd):
if?len(pwd)<=4:
return?5
elif?len(pwd)>=8:
return?25
else:
return?10
def?char_score(pwd):
pn?=0
for?p?in?pwd:
if?p.isalpha():
pn+=1
if?pn==0:
return?0
elif?pwd.upper()==pwd&nbs***bsp;pwd.lower()==pwd:
return?10
else:
return?20
def?num_score(pwd):
nn?=?0
for?n?in?pwd:
if?n.isdigit():
nn?+=1
if?nn?==0:
return?0
elif?nn?==1:
return?10
else:
return?20
def?sym_score(pwd):
for?i?in?pwd:
if?i.isdigit()&nbs***bsp;i.isalpha():
pwd?=?pwd.replace(i,'0')
sn?=?len(pwd)?-?pwd.count('0')
if?sn?==?0:
return?0
elif?sn?==1?:
return?10
else:
return?25
def?reward_score(c_score,n_score,s_score):
if?c_score?==?20?and?n_score>0?and?s_score>0:
return?5
elif?c_score?==?10?and?n_score>0?and?s_score>0:
return?3
elif?c_score?>?10?and?n_score>0?and?s_score==0:
return?2
else:
return?0
def?pwd_level(total_score):
if?total_score>=90:
return?'VERY_WEAK'
elif?total_score?>=80:
return?'WEAK'
elif?total_score?>=70:
return?'VERY_STRONG'
elif?total_score?>=60:
return?'STRONG'
elif?total_score?>=50:
return?'AVERAGE'
elif?total_score?>=25:
return?'SECURE'
else:
return?'VERY_SECURE'
if?__name__?==?'__main__':
while?True:
try:
pwd?=?input()
l_score?=?longenth_score(pwd)
c_score?=?char_score(pwd)
n_score?=?num_score(pwd)
s_score?=?sym_score(pwd)
r_score?=?reward_score(c_score,n_score,s_score)
total_score?=?l_score+c_score+n_score+s_score+r_score
print(pwd_level(total_score))
except:
break 笨方法,還算清晰,示例是錯(cuò)的差點(diǎn)坑死我
發(fā)表于 2019-12-21 19:46:19
回復(fù)(0)
總結(jié)
以上是生活随笔為你收集整理的python isupper需要调包吗_密码强度等级的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言交换两个数字 位运算_交换两个8位
- 下一篇: 怎么覆盖默认样式_图形设计软件cdr教程