分類統計字符
用戶輸入一個字符串,分別統計其中小寫字母、大寫字母、數字、空格和其他字符的個數,並在一行內輸出小寫字母、大寫字母、數字、空格和其他字符的個數。
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("極強")