恺撒密码 I

描述

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

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

上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26

假设用户可能使用的输入仅包含小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。


输入

示例1: python is good


输出

示例1: sbwkrq lv jrrg

算法思想:
input()接收一串字符,然后利用for循环逐个进行判断,遇到空格边将结果字符串添加上一个空格,遇到字符边利用以上加密方式对字符进行加密,然后再添加到结果字符串中,最后输出。

python源码:

str=input()
strout=''
for i in range(len(str)):if str[i]==' ':strout+=' 'continueelse:strout+=chr((ord(str[i])-97+3)%26+97)  #ord(str)将str字符转换为Unicode编码,如‘a’是97
print(strout)

复杂度分析:
时间复杂度:o(n) 一次for循环
空间复杂度:o(n) 输出字符串strout

python练习——恺撒密码 I相关推荐

  1. Python 之恺撒密码加密算法

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

  2. Python练习:恺撒密码 I

    练习:恺撒密码 I 平台:Python123.io 教师:嵩天 描述 凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的 ...

  3. python练习题15:恺撒密码 I

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

  4. 恺撒密码python代码

    恺撒密码python代码 小白自己随便写的,最笨的办法 问题: 恺撒密码 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫ ...

  5. Python基础编程入门实例:恺撒密码

    文章目录 Python基础编程入门实例:恺撒密码 一.什么是恺撒密码 二.程序运行环境 三.恺撒密码:加密 3.1.恺撒密码加密实例程序 3.2.恺撒密码加密实例程序运行结果 四.恺撒密码:解密 4. ...

  6. 恺撒密码 python

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

  7. 恺撒密码(Python练习)

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

  8. 恺撒密码加解密程序(Python)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.确定恺撒密码原理,用公式表示 二.子函数的确立 1.加密部分 2.解密部分 3.选择加密还是解密 三.确定各个子函 ...

  9. python恺撒密码 B

    恺撒密码 B ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭ ...

最新文章

  1. 瑞星:ATM出现漏洞 银行:哪有这回事?
  2. Linux 小知识翻译 - 「单CD 的linux」
  3. 送一台自用笔记本电脑!新款
  4. 办公效率:从事会计行业,这些Excel技巧绝对用得着!
  5. suse linux 11如何分区,新手发帖,关于SUSE11挂载磁盘阵列并分区的问题
  6. Android自定义滑动进度条,Android自定义View实现圆形水波进度条
  7. ppt手动放映怎么设置_一键解决PPT的动画播放和动画排序问题!
  8. 海康visionmaster-软加密
  9. 计算机键盘如何打字课件,电脑键盘打字入门基础.ppt
  10. CATIA—机电产品数字化设计工具
  11. 《COMPLETE MAYA PRO GRAMMIN G VOLUME II》导言
  12. oracle 计算时间差 毫秒,Oracle计算时间差为毫秒的实现代码
  13. keybd_event模拟键盘输入
  14. 关于阿里云主机万网虚拟主机建立多个网站教程,很实用!
  15. 快手也抢先字节出手了…
  16. FFMPEG4.1源码分析之 内存管理APIs av_freep() av_free()
  17. 雪亮工程、平安城市以及天网工程这三者有什么区别?
  18. ABRT 已检测到 ‘1‘ 个问题。预了解详细信息请执行:abrt-cli list --since 1641347561
  19. 基于SOA架构的开发策略详解
  20. 物联网技术周报第 126 期: 使用 Yocto 构建 Raspberry Pi 系统

热门文章

  1. 微服务架构,这一篇就够了!
  2. 张宇考研数学闭关修炼【解析分册】
  3. 计算机突然断电 硬盘,电脑突然断电对硬盘有影响吗 保护电脑硬盘方法【详解】...
  4. Arm芯片上电启动流程剖解
  5. 计算机基础是公共必修课,计算机公共必修课《大学计算机基础》课程教学大纲.doc...
  6. 计算任意多边形的面积
  7. 网技·实验·3.29
  8. 史记.(闸北)刀客列传
  9. u盘显示请插磁盘f_教你自己解决U盘故障(磁盘不能打开并提示请插入磁盘)
  10. 迅为10.1寸人机界面工业HMI安卓电容屏定制生产供应商