介绍
在这个项目中,你将学习如何实现凯撒密码(Caesar Cipher),这是一种简单且广为人知的加密技术。凯撒密码使用替换方法,将消息中的英文字母替换为字母表序列中向后或向前 N 个位置的字符。
👀 预览
## 示例 1
text = "python"; encryption_text = "ravjqp"
## 示例 2
text = "pyThon"; encryption_text = "raVjqp"
## 示例 3
text = "Python31"; encryption_text = "Ravjqp31"
## 示例 4
text = None; encryption_text = None
🎯 任务
在这个项目中,你将学习:
- 如何设置项目环境并创建必要的文件
- 如何实现凯撒加密函数,将字符串中的每个英文字母向右移动 2 个位置
- 如何处理不同类型的输入,包括英文字母、非英文字母和空值
- 如何使用各种输入示例测试凯撒加密函数
🏆 成果
完成这个项目后,你将能够:
- 理解凯撒密码加密技术的基本原理
- 在不使用任何标准或第三方库的情况下,用 Python 实现凯撒加密函数
- 培养字符串操作、字符编码和条件逻辑方面的技能
- 测试你的代码,确保它符合项目要求
实现凯撒加密
在这一步中,你将实现凯撒加密函数。
打开
caesar_cipher.py文件。修改
caesar_encryption(text)函数以实现所需功能:- 输入一个字符串,并将字符串中的每个英文字符向右移动 2 个位置。
- 仅转换半角英文字符,其他内容保持不变。
- 字符的大小写应保持不变,例如,A 将转换为 C,b 将转换为 d。
将
"""TODO"""注释替换为以下代码:
def caesar_encryption(text: str) -> str:
if text is None:
return None
encryption_text = ""
for char in text:
if char.isalpha() and char.isascii():
if char.islower():
encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
else:
encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
else:
encryption_text += char
return encryption_text
这段代码实现了项目要求中描述的凯撒加密算法。
测试凯撒加密
在这一步中,你将使用一些示例输入来测试凯撒加密函数。
- 在
caesar_cipher.py文件末尾添加以下代码:
if __name__ == "__main__":
test_input_text = input()
print(caesar_encryption(test_input_text))
- 保存
caesar_cipher.py文件。 - 打开一个终端并导航到
/home/labex/project目录。 - 使用以下命令运行
caesar_cipher.py脚本:
python3 caesar_cipher.py
- 输入一些测试输入文本并观察加密后的输出。
验证要求
在这一步中,你将验证你的实现是否符合项目要求。
回顾项目要求,确保你的
caesar_encryption(text)函数:- 输入一个字符串,并将字符串中的每个英文字符向右移动 2 个位置。
- 仅转换半角英文字符,其他内容保持不变。
- 保留字符的大小写,例如,A 转换为 C,b 转换为 d。
使用提供的参考示例测试你的函数:
## 示例 1
text = "python"; encryption_text = "ravjqp"
## 示例 2
text = "pyThon"; encryption_text = "raVjqp"
## 示例 3
text = "Python31"; encryption_text = "Ravjqp31"
## 示例 4
text = None; encryption_text = None
- 确保你的函数能正确处理所有测试用例。
恭喜你!你已经完成了凯撒密码项目。如果你有任何问题或需要进一步的帮助,请随时提问。
总结
恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



