凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
输入格式:
如下
输出格式:
如下
输入样例:
python is good
输出样例:
sbwkrq lv jrrg
将a,b,c,d,e....依次看作0,1,2,3,4 ......
本题运用ord函数
ord函数是Python的内置函数的一种。它对于一个字符串(长度为1),返回一个相对应的Unicode值,并通过嵌套函数可以将其表现为16进制或者8进制值(ASCII)的字符值。如果要转换的字符串超出Python定义范围,则会引发TypeError错误。
ord(c)
其中,c为参数可以代入长度为1的字符(串)。如果长度大于1,则会报错:TypeError。
sum = input()
b = ""
for a in sum:
if 'a' <= a <= 'z':
b += chr( ord('a') + ((ord(a)-ord('a')) + 3 )%26 )#ord函数是Python的内置函数的一种。
else:
b += a
print(b)