#凯撒密码第一个版本
#加密
pxpt=input("请输入明文文本:")
for p in pxpt:
if 'a'<=p<='z':
print(chr(ord('a')+(ord(p)-ord('a')+3)%26),end='')
elif 'A'<=p<='Z':
print(chr(ord('A')+(ord(p)-ord('Z')+3)%26),end='')
else:
print(p,end='')
#ord('a')+(ord(p)-ord('a')+3)%26
print()
#解密
pxpt=input("请输入密文文本:")
for p in pxpt
if 'a'<=p<='z':
print(chr(ord('a')+(ord(p)-ord('a')-3)%26),end='')
elif 'A'<=p<='Z':
print(chr(ord('A')+(ord(p)-ord('Z')-3)%26),end='')
else:
print(p,end='')
#ord('a')+(ord(p)-ord('a')-3)%26
#凯撒密码第二个版本
s1='bag' #加密
s2='ont' #解密
d={}
for c in (65,97): #编码范围
for i in range(26): #字母范围
d[chr(i+c)]=chr((i+13)%26+c)
print(''.join(d.get(c,c) for c in s1))
print(''.join(d.get(c,c) for c in s2))
#凯撒中英文加密
ptxt=input("请输入明文文本:")
for p in ptxt:
if 'a'<=p<='z':
print(chr(ord('a')+(ord(p)-ord('a')+3)%26),end='')
elif 'A'<=p<='Z':
print(chr(ord('A')+(ord(p)-ord('Z')+3)%26),end='')
elif 0x4E00<=ord(p)<=0x9FA5:
print(chr(ord(p)+3),end='')
else:
print(p,end='')