ord(p) - ord('a')

这个意思是以 'a' 为序号0,计算字符p的序号。在ASCII字符集中,小写字母a-z是连续排列的,因此如果a是0的话,那么b就是1,c就是2……以此类推。

ord(p) - ord('a') + 3

前面一段我们解释过了,那么这一段的意思就是把这个序号+3

(ord(p) - ord('a') + 3) % 26

将序号+3后的结果以26为基数取模。意思就是如果这个数超过26那么就回到0重新循环。也就是说我们让这个数字始终处于0-25的范围中。如果这个数是26,那么最终将回到0,27会变成1……以此类推。

ord('a') + ((ord(p) - ord('a') + 3) % 26)

通过后面的一串运算,我们得到了英文字母在字母表所在序号的后三个序号。比如,原字母是b,那么它的原始序号是1,经过运算之后得到4。原字母是x,原始序号是23,经过运算之后得到0。y会得到1。等等。

然后把这个序号再加上'a'字母的字符集编码,就得到了这个字母的真正字符集编码。

这里稍微提一下字符集的概念。我们知道计算机是通过0和1形成的二进制来进行数据的表示和运算的。0和1很显然只能表示数字。如果我们要处理文字、图像、视频之类的非数字信息,就需要找到一种方法将它们的信息和数字对应起来,也就是所谓的“数字化”。对于文字,尤其是计算机诞生之初处理的英文信息,我们提供了一种约定,将每一个英文字母和一些符号分配一个数字。以后我们看到这个数字就知道它对应的字符是啥了。ASCII字符集就是早期比较流行的一种通用约定。在这种约定中,'a'对应的数字是97,'b'对应的数字是98……以此类推。反过来说,如果我们从某个地方读到了一个数字97,并且我们知道我们在读取一个字符,我们就知道它是字符'a',等等。

现在更流行的字符集是基于UNICODE的UTF-8编码字符集。这个字符集能表示更多的字符,包括中文。其中的英文部分,跟ASCII字符集几乎是完全兼容的。

上面那段代码,实际上就是计算出移位之后的新字符的字符集编码。

最后我们通过 chr 函数,告知系统这实际上是一个字符。那么print函数就会把编码对应的字符打印出来。

那么综合一下,这行代码的实际意思就是打印原字符后移三个字母之后的新字母(如果序号超过'z'则回到字母表开头进行循环)。这其实也就是凯撒加密算法的核心了。

举个例子来说。

hello, worldz 这个字符串,经过处理之后,打印出的应该是:khoor,zrougc

python中代码段的标志是什么车_请问这段Python代码是什么意思?相关推荐

  1. python中分支语句elif与else的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  2. python中的序列类型数据结构元素的切片_第四章 Python字符串以及(split,rsplit,replace,strip.....)...

    创建 s1 = 'lenovo' s2 = "QF" s3 = """hello lenovo""" s4 = '''h ...

  3. python中0和1可以表示真假吗_教你用 python 辨别真假是非

    教你用 python 辨别"真假是非" 01-Python中的数据类型-05-流程控制 总体 要讲的大纲内容 如下 数字类型- int float complex 字符串类型 Te ...

  4. python中编完类后到实例编写_[零基础学python]编写类之一创建实例

    虽然已经对类有了一点点模糊概念,但是,阅读前面一讲的内容的确感到累呀,都是文字,连代码都没有. 本讲就要简单多了,尝试走一个类的流程. 说明:关于类的这部分,我参考了<Learning Pyth ...

  5. python中函数不包括参数函数二阶导数公式_请问参数方程确定的函数的二阶导数公式的详细推导过程?...

    展开全部 y''=d(dy/dx)/dx=[d(dy/dx)/dt]*(dt/dx) 因变量由y换作dy/dx,自变量还是62616964757a686964616fe58685e5aeb931333 ...

  6. python中os.path.join()的循环用法_Python os.path.join()用法及代码示例

    Python中的OS模块提供了与操作系统进行交互的功能.操作系统属于Python的标准实用程序模块.该模块提供了使用依赖于操作系统的功能的便携式方法. os.path模块是Python中OS模块的su ...

  7. python函数定义中没有对参数指定类型、这说明_二级单选-函数和代码复用

    . i. .w. 1 关于递归函数的描述,以下选项中正确的是 A 函数部包含对本函数的再次调用 B 函数比较复杂 C 包含一个循环结构 D 函数名称作为返回值 正确答案: A 2 关于递归函数基例的说 ...

  8. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  9. python中变量名有哪些_Python变量范围有哪些?如何在Python中定义变量?

    Python变量范围有哪些?如何在Python中定义变量?在Python编程语言中,变量的范围是该变量可见或可访问的那段代码.更准确地说,不是每个程序的每个部分都可以访问所有变量.而且,有时范围也是持 ...

最新文章

  1. JavaScript 笔记Day1
  2. 第一个Python程序hello.py提示出现File stdin,line 1错误
  3. Python中list(列表)
  4. python爬虫:读取PDF
  5. .NET_.NET Copy Web 部署概念_01-3
  6. java logging 格式化_Spring源码使用java.util.logging打印日志
  7. 去雾综述_图像去雾的算法历史与综述
  8. 硬核桌面美化,让Windows电脑像Mac一样充满高级感!
  9. HDU 4568 Hunter
  10. KMplayer字幕
  11. 大数据、云计算、人工智能的融合应用分析
  12. 陌上花将开,徐徐观赏
  13. 夜已深,为何身体没有困意!
  14. 全球及中国公共安全记录管理系统行业发展现状及前景趋势预测报告(2022-2027)
  15. HDU2188——悼念512汶川大地震遇难同胞——选拔志愿者(Bash Game巴士博弈)(我去,名字肿么这么长)
  16. 字节跳动或推独立出口电商APP,亚马逊阿里虾皮:不慌
  17. 麦克尼马尔检验(McNemar test)
  18. 全景图像拼接【计算机视觉】
  19. 初链-解读初链白皮书
  20. linux网络配置文件 只读 无法保存报错

热门文章

  1. oracle部署--安装oracle软件与部署单实例数据库
  2. 智能家居物联网化将成为AWE大会最大看点
  3. 自己调试接口遇到的错误记录
  4. JAVA并发编程实战---第三章:对象的共享(2)
  5. ny12 喷水装置(二)
  6. C++程序设计(第2版)课后习题答案--第11章
  7. ubuntu 安装fcitx输入法(3.6和4.0bate)
  8. handler 消息处理机制
  9. leetcode1292. 元素和小于等于阈值的正方形的最大边长(二分法+前缀和)
  10. linux gcc 示例_最好的Linux示例