小白自己隨便寫的,最笨的辦法
問題:
愷撒密碼
描述
愷撒密碼是古羅馬愷撒大帝用來對軍事情報進行加解密的演演算法,它採用了替換方法對資訊中的每一個英文字元迴圈替換為字母表序列中該字元后面的第三個字元,即,字母表的對應關係如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
對於原文字元P,其密文字元C滿足如下條件:C=(P+3) mod 26
上述是凱撒密碼的加密方法,解密方法反之,即:P=(C-3) mod 26
假設使用者可能使用的輸入包含大小寫字母azAZ、空格和特殊符號,請編寫一個程式,對輸入字串進行愷撒密碼加密,直接輸出結果,其中空格不用進行加密處理。使用input()獲得輸入。
輸入
範例1: python is good
輸出
範例1: sbwkrq lv jrrg
凱撒密碼加密:
#凱撒密碼加密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
s = P[i]
if s in ABC:
n=ABC.index(s)
print(CBA[n],end='')
else:
print(s,end='')
凱撒密碼解密:
#凱撒密碼解密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
s = P[i]
if s in CBA:
n=CBA.index(s)
print(ABC[n],end='')
else:
print(s,end='')