明文中的字母偏移n位,若n为正整数,则字母向后偏移n位;n为负整数,则字母向前偏移n位。其他字符不发生变化。
如原文“ABy123”,n值为-3,则加密后的密文为“XYv123”,若n值为3,则加密后的密文为“DEb123”。实现上述功能的python程序如下,请回答下列问题:
(1)若偏移位数n值为-2,密文为“ABC@M”,则原文为
(2)请在划线处填入合适的代码。
(3)加框处代码有误,请修改。
def encrypt(c,n,d) : #函数功能:获取偏移后相应字母ASCII码的值,并返回对应的字母
if "A" <= c <= "Z" or "a" <= c <="z":
if n > 0:
c = chr((ord(c) - d + n) % 26 + d)
else:
c = chr((ord(c) - d + n + 26) % 26 + d)
①
n = int(input("输入偏移位数:"))
str1 = input("输入明文:")
str2 = ""
for i in range(len(str1)):

if "a" <= c <= "z":
c1 = ②
elif "A" <= c <= "Z":
c1 = encrypt(c,n,ord("A"))
else:
c1 = c
③
print("生成的密文为:",str2)

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

