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
假设⽤户可能使⽤的输⼊仅包含西⽂字母,即英⽂⼤⼩写字母a~zA~Z和特殊字符,请编写⼀个程序,对输⼊字符串进⾏凯撒密码加密,直接输出结果,其中特殊字符不进⾏加密处理。
请注意:
1. 输⼊使⽤input(""),不要增加提⽰信息
2. 输出与要求⼀致
s = input()
t = "" #为创建新字符串做好准备⼯作
for c in s: #字符串的遍历
if 'a' <= c <= 'z': #当为⼩写字符时
t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
elif 'A' <= c <= 'Z': #当为⼤写字符时
t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
else: #其他字符不变
python教程字符串函数
t += c #运⽤t+,将新码存放在t中
print(t)
其中涉及的知识点
1,chr(u) 与ord(x) 函数
u为Unicode编码(Python中字符串的编码⽅式),chr(u)返回u对应的单字符
x为单字符, chr(u)
Unicode编码↔单字符
ord(x)
2,x mod y 为 x%y ,求x/y的余数
【例】字符串反码
描述
字符串反码的定义为:字符串所包含字符的反码组成的字符串。
字符反码的定义为:
(1) 对于⼩写英⽂字符,它的反码也是⼀个⼩写英⽂字符,且该字符与'a'的距离等于其反码与'z'的距离;
(2) 对于⼤写英⽂字符,它的反码也是⼀个⼤写英⽂字符,且该字符与'A'的距离等于其反码与'Z'的距离;
两个字符距离指其对应unicode编码之差。
输⼊
⽰例1:2018-Python123-Well-Done
输出
⽰例1:2018-Kbgslm123-Dvoo-Wlmv
a= input()
for i in a: #字符串的遍历
if i>='a' and i <='z':
print(chr(ord('z')-ord(i)+ord('a')),end="")
elif i>='A' and i<= 'Z':
print(chr(ord('Z')-ord(i)+ord('A')),end="")
else:
print(i,end="") #单字符⼀个⼀个输出不换⾏
其中涉及的知识点
保留字and 逻辑“与”,相当于c语⾔中的&&
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论