python - python中旋转13密码错误
问题描述
我正在做一些有竞争力的编程,偶然发现了一个 ROT13 问题,该问题要求我将每个字母增加 13。
这是我的尝试
def rot13(message):
l2 = []
l1 = list(message)
for i in l1:
i = str(i)
for i in l1:
if ord('a') <= ord(i) <= ord('z'):
i = chr((ord(i) + 13) % 26 + ord('a'))
l2.append(i)
elif ord('A') <= ord(i) <= ord('Z'):
i = chr((ord(i) + 13) % 26 + ord('A'))
l2.append(i)
return l2
它返回错误的输出,例如
对于输入-测试,它给出了输出-zkyz,而正确的是“grfg”
对于 input - Test ,输出是 Tkyz 而它应该是 Grfg
我还没有加入这个列表,因为我第一次尝试得到正确的答案。
解决方案
这是更正后的代码:
def rot13(message):
l2 = []
l1 = list(message)
for i in l1:
if ord('a') <= ord(i) <= ord('z'):
i = chr((ord(i) - ord('a') + 13) % 26 + ord('a')) # <== changed
l2.append(i)
elif ord('A') <= ord(i) <= ord('Z'):
i = chr((ord(i) - ord('A') + 13) % 26 + ord('A')) # <== changed
l2.append(i)
return l2
和试运行:
>>> rot13('Test')
['G', 'r', 'f', 'g']
问题是ord('a')
或者ord('A')
需要从最初的ord()调用中减去。你非常接近。除了这个尼特,一切都奏效了:-)
推荐阅读
- azure-bicep - 二头肌如何同时部署App Service + Certificate + hostbinding?
- java - 如何创建 SimpleWeightedGraph
来自生成树 - r - 在 R 中创建一个迭代循环以读取文件夹中的所有 Excel 文件,执行相同的功能,并导出为新文件
- python - Big Query 客户端响应的模拟答案
- sql - Oracle时间戳sql
- visual-studio-code - 有没有办法在 chromebook 上使用 VSCode?
- python - Flask restful 正在做 GET 而不是 POST
- r - 有没有办法在自己的函数中使用 mutate ?
- python - 如何在 Visual Studio Code 中编辑笔记本 (.ipynb) 设置?
- android - 如何对 Android Exoplayer 中的功能进行质量控制?