日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python isupper需要调包吗_密码强度等级

發布時間:2025/3/11 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python isupper需要调包吗_密码强度等级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1

#?思路:將統計情況放主函數中一起寫,避免分開寫時多次遍歷密碼字符串。

while?True:

try:

password?=?input().strip()

score?=?0??#?初始化得分為0

#?長度得分

if?len(password)?<=?4:

score?+=?5

elif?5?<=?len(password)?<=?7:

score?+=?10

else:

score?+=?25

#?字母、數字、符號統計(是否出現過、出現的個數)

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

#?數字得分

if?digit_num?==?1:

score?+=?10

elif?digit_num?>?1:

score?+=?20

#?符號得分

if?symbol_num?==?1:

score?+=?10

elif?symbol_num?>?1:

score?+=?25

#?獎勵得分

#?此寫法錯誤,本該屬于第三種加分的情況被第二種加分情況攔截住了,加成了第二種情況的分數。

#?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

#?分數等級

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

回復(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())

發表于 2020-12-13 01:38:02

回復(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

回復(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#數字

c?=?0#符號

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

回復(0)

0

#?2020年11月14日23:28:18

def?get_scord(password):

scord?=?0

#???驗證密碼長度

length?=?len(password)

#???長度得分

if?length?<=?4:

scord?+=?5

elif?length?<=?7:

scord?+=?10

else:

scord?+=?25

#???驗證密碼字母、數字、符號個數

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

#???數字得分

if?number?==?0:

scord?+=?0

elif?number?==?1:

scord?+=?10

else:

scord?+=?20

#???符號得分

if?symbol?==?0:

scord?+=?0

elif?symbol?==?1:

scord?+=?10

else:

scord?+=?25

#???獎勵得分

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()

#???????獲取分數

scord?=?get_scord(password)

#???????根據分數判斷密碼等級

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

發表于 2020-11-15 00:24:11

回復(0)

0

條理清晰,簡單易懂

while?True:

try:

s?=?input().strip()

p_len,?low,?upper,?digit,?ch?=?0,?0,?0,?0,?0

flag?=?0?#?四位二進制標記是否存在?0000?分別代表?字符?數字?大寫?小寫

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

回復(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

發表于 2020-09-29 19:26:39

回復(0)

0

參考通過小伙伴的代碼

while?True:

try:

s?=?input()

l?=?len(s)

p?=?0

d?=?0

lower?=?0

upper?=?0

f?=?0

t?=?['0',?'0',?'0',?'0']

#?密碼長度判斷

if?l?

p?+=?5

elif?l?

p?+=?10

else:

p?+=?25

for?i?in?range(0,?l):

if?s[i].isdigit():?#?數字判斷

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:?#?符號判斷

t[3]?=?'1'

if?f?==?10:?#?2個即得滿25分,2個以上不執行下述判斷

f?=?25

elif?f?==?0:?#?一個符號

f?=?10

p?+=?d?+?lower?+?upper?+?f

t_s?=?''.join(t)

#?建立獎勵的判別標準,采用0,?1來判斷十分方便

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

發表于 2020-08-24 15:06:16

回復(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()) 有一個用例一直沒法通過 → PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`

里面明明沒有數字為什么輸出最后得分會達到90分呢?

發表于 2020-08-01 13:05:49

回復(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

回復(0)

0

題不難,就是分類情況多了些

def get_score(s):

score, award = 0, 0

# mark標記各類型個數,分別是小寫字母,大寫字母,數字,符號個數

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

回復(0)

1

while(True):

try:

s = input()

secLength = len(s)

upperCount = 0

lowerCount = 0

numCount = 0

score = 0

charCount = 0

for i in s:

# 數字個數

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')

發表于 2020-07-11 12:11:55

回復(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

回復(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

發表于 2020-04-12 19:10:17

回復(0)

0

簡單粗暴,一條一條加。

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

發表于 2020-04-08 19:46:13

回復(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

回復(8)

0

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.isupper()&nbs***bsp;pwd.islower():

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')#這里用0代替字母和數字,是個靈活的判斷,下面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

發表于 2020-01-31 17:47:50

回復(0)

0

pwd = str(input())

s = 0

#下面這三個變量代表數字,字母和符號的個數

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')

,,,

系統提示:

用例:

PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`

對應輸出應該為:

VERY_STRONG

你的輸出為:

空.請檢查一下你的代碼,有沒有循環輸入處理多個case.點擊查看如何處理多個case

但我自己運行的時候輸入PKyt&&fmE^`aBC)t$`Jh^^Rxr(EQ&!N(u)^)`,正常返回了VERY_STRONG

是哪里出了問題?

'''

發表于 2020-01-10 20:24:20

回復(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 笨方法,還算清晰,示例是錯的差點坑死我

發表于 2019-12-21 19:46:19

回復(0)

總結

以上是生活随笔為你收集整理的python isupper需要调包吗_密码强度等级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。