在学习Python基本数据类型部分的内容时,字符串部分所含的函数比较多,类型比较复杂。这道凯撒密码的题有多种解法。这里介绍一种解法。设计到了索引、for…in…循环语句、if条件语句、字符串拼接等知识点。

题目

凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod

代码

# Caesar.pyALP = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" #先将需要的字母全部列出来,大写字母表
alp = ALP.lower()          #小写的字母表
SEC = "DEFGHIJKLMNOPQRSTUVWXYZABC"   #加密字母表
sec = SEC.lower()          #小写的加密字母表str = input()             #输入原文
code = ""for i in range(len(str)):       #循环正序遍历str种的每一个字符if str[i] in ALP:      #如果是大写,则对应SEC中大写的密文c = ord(str[i]) - ord("A") #ord()截取单个字符的Unicode编码,c的目的是比较当前字符“相对A的Unicode对应在原字母表中的位置code = code + SEC[c]  #将这个处理完的字符拼接在code上elif str[i] in alp:c = ord(str[i]) - ord("a")code = code + sec[c]else:code = code + str[i] #忽略掉特殊字符print(code)             #输出密码

优点

  • 简单易懂、无需其他知识

缺点

  • 无法进一步扩展。比如错位4位、7位的凯撒密码,还需要重新写加密字母表

第一次写文章,欢迎各位大佬批评指正。

Python练习题:凯撒密码 的一种简单解法相关推荐

  1. python密码学凯撒密码_凯撒密码在Python

    python密码学凯撒密码 Hello everyone, in this tutorial you'll learn about Caesar cipher in Python. If you ha ...

  2. python实现凯撒密码、凯撒加解密算法

    python实现凯撒密码.凯撒加解密算法 更多python视频教程请到菜鸟教程https://www.piaodoo.com/ 凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字 ...

  3. python之凯撒密码及大小写字符翻转

    编写程序,凯撒密码及大小写字符翻转 1.ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串 ...

  4. 【每日一题】| (古典加密)凯撒密码(一)简单的凯撒加密

    文章目录 前言 一.凯撒加密是什么 举个例子 扩展:ROT-13(回转13位) 二.密码破解 总结 前言 今天的每日一题,由我向来大家来介绍预备知识.今天就跟大家聊一聊CTF密码学中古典加密的经典加密 ...

  5. 运用python编写凯撒密码并实现_凯撒密码实现英文短句的加解密

    1. 将"We are students."这个英文词句用k=4的凯萨密码翻译成密码 1. 恺撒密码, 作为一种最为古老的对称加密体制,他的基本思想是: 通过把字母移动一定的位数来 ...

  6. python实现凯撒密码

    这是我首次用python语言写东西,里边代码肯定不能算非常高效,如有疑问,欢迎在博客留言 我觉得应该先对凯撒密码的原理有一定的了解,再看代码才最有效 凯撒的百度百科:https://baike.bai ...

  7. python中凯撒密码_python实现凯撒密码、凯撒加解密算法

    凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字母,在变换加密之前把明文字母都替换为大写字母 def casar(message): # *************begin* ...

  8. python实现凯撒密码加密与解密(暴力求解)

    在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  9. python解决凯撒密码

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

最新文章

  1. dotNet中,取得指定日期所在月份的最后一天
  2. 项目管理一般知识:单个项目的管理过程
  3. 解决‘tf.ResizeNearestNeighbor‘ op is neither a custom op nor a flex op
  4. MySQL主从复制能完美解决数据库单点问题吗?
  5. oracle的视图表,oracle 常用视图和表
  6. 使普通的旧Java OSGi兼容
  7. 笔记:Microservices for Java Developers
  8. 吉哥系列故事――完美队形II(HDU-4513)
  9. 开源openstack_使用4个OpenStack指南和教程构建开源云
  10. 马云的经典语录(转载)
  11. 符合c语言语法规定的是,若变量已正确定义并赋值,符合C语言语法的表达式是 A。a=a+7; B.a=7+b+c,a++...
  12. JavaScript --------WebS APIs学习之本地存储
  13. Linux微信安装网页版
  14. Android开发自定义水印图片
  15. Exercise_1
  16. Deep Mind 团队论文Playing Atari with Deep Reinforcement Learning复现
  17. 经典的W2kXP添加删除硬件
  18. 蒙纳丽莎的微笑系列 广告软文:“效益之源”(转载自:中国灯饰商贸网)
  19. 暗黑修仙 页游 架设教程 单机 自玩 一键端
  20. python3程序开发指南_Python 3安装和设置指南

热门文章

  1. 生成 ZIG-ZAG 扫描顺序MATLAB代码
  2. 酷狗音乐皮肤怎么从计算机里换,酷狗音乐该怎样换皮肤?
  3. docker部署Calibre-Web书库
  4. matlab simulink_解密矩阵实验室 | 山东大学MATLABamp;Simulink下载指南
  5. 【安全知识分享】DOCX|最新应急管理法律法规清单(附下载)
  6. win10家庭版安装docker后vm无法启动
  7. PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!
  8. opencv-python 立体图像的深度图
  9. 维基百科没有告诉你关于宝马的什么
  10. excel统计求和:如何在合并后的单元格中复制求和公式