D. 凯撒密码 题目描述 为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。 输入 第一行输入需要进行的解密/加密操作,0表示解密,1表示加密 第二行给出一个以回车结束的非空字符串(少于80个字符) (密文或明文) 第三行输入一个整数offset。 输出 输出加密/解密后的结果字符串。
时间: 2024-02-28 20:56:56 浏览: 89
我可以为您提供代码示例,您只需要将其复制到您的代码编辑器中并运行即可:
```python
# 获取操作类型
operation = int(input())
# 获取输入字符串
text = input().strip()
# 获取偏移量
offset = int(input())
# 将偏移量控制在 0~25 的范围内
offset %= 26
# 解密操作
if operation == 0:
result = ""
for char in text:
if char.isalpha():
if char.islower():
result += chr((ord(char) - offset - 97) % 26 + 97)
else:
result += chr((ord(char) - offset - 65) % 26 + 65)
else:
result += char
# 加密操作
else:
result = ""
for char in text:
if char.isalpha():
if char.islower():
result += chr((ord(char) + offset - 97) % 26 + 97)
else:
result += chr((ord(char) + offset - 65) % 26 + 65)
else:
result += char
# 输出结果
print(result)
```
注意,这里的偏移量限制在了 0~25 的范围内,因为对于英文字母表来说,偏移 26 个位置相当于没有偏移。如果您需要支持更大的偏移量,可以将偏移量进行取模运算,将其限制在 0~25 的范围内。
阅读全文