描述
凯撒密码:将明文字符串中大小写字母右移n位(用其后第n个字母替换)、其他字符保持不变后得到密文。
如明文"Your need Python.“右移2位加密后得到"Aqwt pggf Ravjqp.”.
定义函数 caesar(plain_text, shift_num)将明文plain_text右移shift_num位,返回密文。
提示:将字符x后第n个字符为 chr(ord(x)+n),注意判断ord(x)+n是否“越界”(超出ord(‘z’)或ord(‘A’))。
输入输出示例:
代码如下:
import string
upper_list = string.ascii_uppercase # 大写字母集合
lower_list = string.ascii_lowercase # 小写字母集合
def caesar(plain_text, shift_num):
str = '' # 定义一个目标字符串
for c in plain_text:
if c in lower_list:
index = (lower_list.index(c) + shift_num) % len(lower_list)
str += lower_list[index]
elif c in upper_list:
index = (upper_list.index(c) + shift_num) % len(upper_list)
str += upper_list[index]
else:
str += c
return str
text = input()
shift_num = eval(input())
print(caesar(text, shift_num))
文章评论