Python练习题: 利用chr()与ord()函数实现恺撒密码
Python练习题: 利用chr()与ord()函数实现恺撒密码
恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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()获得输入。
利用字符串处理函数ord()来获取编码,经过运算后,再使用chr() 返回对应字符,简化了程序。但总认为还可以再简化,欢迎大家来讨论。
hanStr = input()
for i in range(len(hanStr)):
m = ord(hanStr[i])
if m in range(65,88) or m in range(97,120) :
print(chr(m+3),end='')
elif m in range(88,91) or m in range(120,123) :
print(chr(m - 23), end='')
else:
print(hanStr[i], end='')