Python:凯撒密码

题目内容:

凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下:

原文: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

原文字符与其密文字符满足如下条件:

密 = (原+3) mod 26

解密方法反之,满足:

原 = (密--3) mod 26

请解密:HAFHOOHQW

输出样例如下:

python 复制代码
encrypted_text = "HAFHOOHQW"
print(f"待解密码为:{encrypted_text}")
decrypted_text = ""
for char in encrypted_text:
    if char.isalpha():
        if char.isupper():
            original_char = chr((ord(char) - ord('A') - 3) % 26 + ord('A'))
        else:
            original_char = chr((ord(char) - ord('a') - 3) % 26 + ord('a'))
        decrypted_text += original_char
    else:
        decrypted_text += char

print(f"解得密码为:{decrypted_text}")

这段 Python 代码的主要功能是对一个经过简单凯撒密码加密的文本进行解密操作。凯撒密码是一种简单的替换加密方法,它将字母表中的每个字母按照固定的位数进行位移。在这段代码中,加密时字母向右移动了 3 位,因此解密时需要将字母向左移动 3 位。下面是对代码的详细解释:

1. 定义加密文本 :将加密后的文本 "HAFHOOHQW" 赋值给变量 encrypted_text,并打印待解密码的信息。

2. 初始化解密文本 :创建一个空字符串 decrypted_text,用于存储解密后的文本。

3. 遍历加密文本 :使用 for 循环遍历 encrypted_text 中的每个字符。

4. 字符处理

  • 如果字符是字母,则根据其大小写进行不同的处理:
  • 对于大写字母,将其向左移动 3 位,通过计算偏移量并转换为对应的字符。
  • 对于小写字母,同样将其向左移动 3 位。
  • 如果字符不是字母,则直接将其添加到解密文本中。

5. 打印解密结果 :将解密后的文本存储在 decrypted_text 中,并打印解得密码的信息。

觉得有帮助就给博主点个关注叭~~

有问题的可以私信或者在评论区一起交流

友友们一起加油叭QAQ

相关推荐
捧 花3 小时前
FastAPI 基础语法:从一个完整接口理解 Web API 的设计
前端·python·fastapi·middleware
Ming_studying3 小时前
Python批量压缩图片:支持JPG_PNG_WebP、尺寸限制与CSV报告
开发语言·图像处理·python·pillow·图片压缩
大熊背3 小时前
ISP图像处理中大数乘法溢出处理(一)
人工智能·python·算法·溢出处理
何以解忧,唯有..3 小时前
Python协程详解:从生成器到async/await的完整指南
开发语言·python
hhzz3 小时前
智慧校园13类视频异常检测:数据集与预训练模型全攻略
人工智能·pytorch·python·深度学习·目标检测·机器学习
浩腾数字多媒体4 小时前
如何判断专业电子留言厂家适配条件?
大数据·人工智能·python
wabs6664 小时前
关于栈【力扣1047. 删除字符串中的所有相邻重复项的思考】
数据结构·c++·算法·leetcode··代码随想录
会编程的吕洞宾4 小时前
DeepAgents In Action学习(Third)
python·学习·django
'2064 小时前
**写了个自动整理下载视频的脚本:按片名归档、自动重命名、生成目录索引
开发语言·python·ffmpeg·音视频·cctv
疯狂打码的少年4 小时前
【数据结构】选择类排序:简单选择与堆排序
java·数据结构·笔记·算法