描述
愷撒密碼是古羅馬愷撒大帝用來對軍事情報進行加解密的算法,它采用了替換方法對信息中的每一個英文字符循環替換為字母表序列中該字符后面的第三個字符,即,字母表的對應關系如下:
原文: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
假設用戶可能使用的輸入包含大小寫字母a~zA~Z、空格和特殊符號,請編寫一個程序,對輸入字符串進行愷撒密碼加密,直接輸出結果,其中空格不用進行加密處理。使用input()獲得輸入。
輸入
示例1: python is good
輸出
示例1: sbwkrq lv jrrg
1 pwd = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 2 before = input() #輸入要加密的話 3 beforeUp = before.upper() #將輸入的所有字符變大寫 4 result = '' 5 for i in range(len(before)): 6 if beforeUp[i] in pwd: #過濾非字母 7 start = pwd.index(beforeUp[i]) 8 end = (start+3)%26 #得到在pwd中的下標 9 if before[i].islower(): 10 result += pwd[end].lower() 11 else: 12 result +=pwd[end] 13 else: 14 result +=before[i] 15 print(result)
大家有什么別的好方法嗎