找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2073|回复: 2

[求助] 关于凯撒密码的问题

8

主题

18

帖子

18

积分

贫民

积分
18
xcqpython 发表于 2019-6-13 23:18:27 | 显示全部楼层 |阅读模式
1  plaincode = input("请输入明文: ")
2  for p in plaincode:
3      if ord("a") <= ord(p) <= ord("z"):
4          print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='')
5      else:
6          print(p, end='')

为什么第4行,不直接    print(chr(ord(p) + 3),end=''),这样不也能达到用后面第三个字符替换的目的吗



回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
wx_fPGJe5JG 发表于 2019-6-15 13:21:22 | 显示全部楼层
直接    print(chr(ord(p) + 3),end='');对于前23个字母适用(a~w),对于x, y, z就不适用了,正确的凯撒密码,x~z对应关系应该是:
x====>a
y====>b
z====>c
按你的想法,就变成了:
ord('x')=120
x====>chr(123)
y====>chr(124)
z====>chr(125)
回复 支持 反对

使用道具 举报

8

主题

18

帖子

18

积分

贫民

积分
18
xcqpython  楼主| 发表于 2019-6-18 20:42:16 | 显示全部楼层
wx_fPGJe5JG 发表于 2019-6-15 13:21
直接    print(chr(ord(p) + 3),end='');对于前23个字母适用(a~w),对于x, y, z就不适用了,正确的凯撒 ...

嗯嗯,明白了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表