我在做一些竞争性编程时,偶然发现了一个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”
对于输入测试,输出是Tkyz,而它应该是Grfg
我还没有加入名单,因为我第一次试图得到正确的答案
以下是更正后的代码:
和试运行:
问题是需要从最初的ord()调用中减去
ord('a')
或ord('A')
。你很接近。除了这个nit,一切都起作用了:-)相关问题 更多 >
编程相关推荐