凱撒密碼python編程簡(jiǎn)單
1、說(shuō)明
凱撒密碼是古羅馬凱撒大帝為了解密軍事情報(bào)而使用的算法。將信息中的每個(gè)英語(yǔ)文字循環(huán)替換為文字表序列中的第三個(gè)字符。有一套專(zhuān)門(mén)的字母表對(duì)應(yīng)關(guān)系。
2、注意
密文是大寫(xiě)字母,在變換加密之前把明文字母都替換為大寫(xiě)字母。
如果是加密,輸出的密文是大寫(xiě)字母,如果是解密,按照凱撒解密后,轉(zhuǎn)換為小寫(xiě)后,輸出解密后的明文。
3、實(shí)例
fromstringimportascii_lowercase
s=input()#輸入一個(gè)字符串s
str1=''#聲明一個(gè)字符串str1并賦值''
foriins:#遍歷s,我改了下源代碼,這個(gè)更方便
ifiinascii_lowercase:#如果i是小寫(xiě)字母,string.ascii_lowercase直接對(duì)應(yīng)從a到z的字符串
temp=ord(i)#獲取i對(duì)應(yīng)的ascii碼
num=(temp-97+3)%26#凱撒加密,應(yīng)該是每個(gè)字母向后移動(dòng)三位,a->d,b->e...x->a,y->b,z->c
str1=chr(num+97)#ascii碼a是從97開(kāi)始的,所以上一步要-97,這一步要+97
print(str1,end="")#顯示結(jié)果
else:
print("",end="")#如果不是小寫(xiě)字母,則直接打印空白
#如果s的長(zhǎng)度特別長(zhǎng),每次都從a-z長(zhǎng)度的字符串里找效率不是很高,可以試試以下代碼,所有功能都一樣
s=input()#輸入一個(gè)字符串s
str1=''#聲明一個(gè)字符串str1并賦值''
foriins:#遍歷s,我改了下源代碼,這個(gè)更方便
temp=ord(i)#獲取i對(duì)應(yīng)的ascii碼
if97<=temp<=122:#如果i是小寫(xiě)字母,因?yàn)樽帜竌的ascii碼就是97,z的ascii碼是122
num=(temp-94)%26#凱撒加密,應(yīng)該是每個(gè)字母向后移動(dòng)三位,a->d,b->e...x->a,y->b,z->c
str1=chr(num+97)
print(str1,end="")#顯示結(jié)果
else:
print("",end="")#如果不是小寫(xiě)字母,則直接打印空白
以上就是凱撒密碼python編程簡(jiǎn)單的介紹,相信大家已經(jīng)對(duì)凱撒密碼有了初步的了解,學(xué)會(huì)后趕快動(dòng)手試試吧。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。