data = input("请输入密文:")
newData = ""
for s in data:
if ord("A") <= ord(s) <= ord("Z"):
res = chr((ord(s)- ord("A") - 3) % 26 + ord("A"))
newData += res
else:
res = chr((ord(s) - ord("a") - 3) % 26 + ord("a"))
newData += res
print("{}的原文是{}".format(data,newData))
运行结果:
如果觉得答案对你有帮助,请点击下采纳,谢谢~
import os
#-*-coding:utf-8-*-
#==================================================================#
# 凯撒密码(caesar)是最早的代换密码,对称密码的一种 #
# 算法:将每个字母用字母表中它之后的第k个字母(称作位移值)替代 #
#==================================================================#
def encryption():
str_raw = input("请输入明文:")
k = int(input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
i = i+1
print ("加密结果为:"+"".join(str_list_encry))
def decryption():
str_raw = input("请输入密文:")
k = int(input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_decry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) >= 97+k:
str_list_decry[i] = chr(ord(str_list[i]) - k)
else:
str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
i = i+1
print ("解密结果为:"+"".join(str_list_decry))
while True:
print (u"1. 加密")
print (u"2. 解密")
choice = input("请选择:")
if choice == "1":
encryption()
elif choice == "2":
decryption()
else:
print (u"您的输入有误!")
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢