恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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()获得输入。
代码:
n = input()
for i in range(len(n)):
if ord('a') <= ord(n[i]) <= ord('z'):
print(chr((ord(n[i])+3-ord('a'))%26+ord('a')), end="")
elif ord('A') <= ord(n[i]) <= ord('Z'):
print(chr((ord(n[i])+3-ord('A'))%26+ord('A')), end="")
else:
print(n[i],end="")
函数解析:
len(x) 作用:返回字符串x的长度
chr(u) 作用:u为Unicode编码,返回其对应字符
ord(x) 作用:x为字符,返回其对应的Unicode编码
n[i] 解析:
end="" 解析:
在print()函数的使用中,我们可以使用end的一个参数,来决定每一个print输出之后,是否要换行,如果end等于空,那么输出之后并不换行,那么所有的print输出将在一行中表示。