【发布时间】:2020-01-08 01:36:22
【问题描述】:
问题: 在 NSA,你怎么能分辨出性格外向的人和性格内向的人? Va gur ryringbef, gur rkgebireg ybbxf ng gur BGURE thl'f fubrf.
我在 USENET 上发现了这个笑话,但妙语被打乱了。也许你能破译它?根据 Wikipedia,ROT13 (http://en.wikipedia.org/wiki/ROT13) 经常用于混淆 USENET 上的笑话。
提示:对于这个任务,你应该只替换字符。不是空格、标点符号、数字等。测试示例:
我的代码:
def rot13(message):
solved = ""
for i in message:
if i == "," or "-" or "/" or "." or "1" or "2" or "3" or "4" or "5" or "6" or "7" or "8" or "9":
solved += i
else:
decipher = chr(ord(i)+13)
solved += decipher
return solved.upper()
我需要解决的问题 每次我尝试更改超过第 13 个索引的字母时,它都会给我一个空格而不是字母。 例如,当我在函数中输入字母“u”时,它给了我一个“_”,但我想要“h”。如何在 Python 中循环遍历字母表,而不是仅在第 26 个索引处结束
【问题讨论】:
-
if i in 'allyourcharacters': -
你不能说
if i == a or b or c or d,但你可以说if i==a or i==b or ...或if i in (a,b,c,d):。 -
您声称“当我在函数中输入字母“u”时,它给了我一个“_”,但我想要“h””。但是您的代码没有这样做。
rot13("u")返回"U",因为您的测试总是通过。 -
@ShadowRanger 这是一个错误,但引用的“重复”并不是整个问题的答案。然而,关于如何处理 ROT13 有很多重复。
-
@MarkTolonen:是的。 Looking for that one among the many options 现在。 :-)