Python第四周練習:分類統計字符、黑客語解密、密碼強度判斷


分類統計字符

用戶輸入一個字符串,分別統計其中小寫字母、大寫字母、數字、空格和其他字符的個數,並在一行內輸出小寫字母、大寫字母、數字、空格和其他字符的個數。

n=input()
small=big=num=space=other=0
for i in n:
    if(ord(i)>=ord("a") and ord(i)<=ord("z")):
        small+=1
    elif(ord(i)>=ord("A") and ord(i)<=ord("Z")):
        big+=1
    elif(i>="0" and i<="9"):
        num+=1
    elif(i == " "):
        space+=1
    else:
        other+=1
print(small,big,num,space,other)
    

黑客語解密

黑客語(Leet)是從網絡發展起來的一種文字書寫方式。通常將英語中的字母替換為數字和特殊符號。這種方式被很多黑客組織所使用。由於具有隱密性,所以它也廣泛被用於密碼中。使用Leet書寫的密碼,不會增加密碼記憶的復雜度,但卻可以提高密碼的強度。常見的轉化規律有,$替換s,3替換e,4替換a,0替換o,1替換i等。例如,cats使用Leet書寫,就變為c47$。一個純字母的密碼就轉化為字母、數字構成的復雜密碼了。table = ''.maketrans(before, after),這條語句可以創建映射表,str1.translate(table)語句可以將table中的字符按映射表中的順序進行替換。
替換表如下:
0 1 3 4 5 6 7
o i e a s g t
寫一個程序,用於破解一個加密的字符串。

str1 = input()
before = '0134567'
after = 'oieasgt'
table = ''.maketrans(before, after)
print(str1.translate(table))

密碼強度判斷

用戶輸入一個字符串做為密碼,判斷密碼強度,規則為:密碼長度小於8弱密碼,密碼長度大於等於8且包含至少2種字符為中等強度、密碼包含3種字符為強、包含全部4種字符為極強。
提示:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

string.digits 可返回'0123456789'
string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.punctuation 可返回'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

import string
n=input()
a=b=c=d=0
if(len(n)<8):
    print("")
else:
    for i in n:
        if i in string.digits:
            a=1
        elif i in string.ascii_lowercase:
            b=1
        elif i in string.ascii_uppercase:
            c=1
        elif i in string.punctuation :
            d=1
e=a+b+c+d
if(e==2):
    print("")
elif(e==3):
    print("")
elif(e==4):
    print("極強")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM