我要先把我目前掌握的东西贴出来,然后告诉你发生了什么。。。你知道吗
osalt = ".,!? ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def decode():
int = 0
counter = 0
msg = requestString("What would you like Decoded?").upper()
print "Now decoding, '"+msg+"'."
print "==========Please Wait=========="
while (int < len(osalt)):
dmsg = ""
nsalt = ""
int += 1
int2 = 0
shift = int-1
while int2 <= len(osalt):
if int2+shift < len(osalt):
nsalt += osalt[int2+shift]
else:
nsalt += osalt[int2+shift-len(osalt)-1]
int2 += 1
for letter in msg:
index = nsalt.find(letter)
dmsg += nsalt[index]
print dmsg
counter += 1
print counter
decode()
它应该做的是列出31种可能性,编码的消息在解码时可能是这样的。你输入编码信息,然后它通过,一次移动1个字符。。。所以第二种盐是这样的:“Z。,!?befghijklmnopqrstuvxy”。你知道吗
我遇到的问题是,它根本没有移动盐,它最终打印了31次输入。你知道吗
我已经检查了我的代码很多次,我不知道如何让它去。你知道吗
谢谢。你知道吗
首先,在发布代码时,确保它可以被执行。当前您有一个未定义的函数(
requestString
)和print counter
行的不一致缩进。你知道吗关于这个问题,你这里有两个错误。首先,看看
你找到了一个字母在
nsalt
中的位置,然后把同一个字母加到dmsg
。所以你总是打印同样的东西。将其中一个更改为osalt
。你知道吗第二,当你这样做的时候,你会得到一个
string index out of range
错误。这是因为nsalt
字符串实际上比osalt
长一个字符,并且包含一个重复的字母。这是因为这条线你应该用
<
。int2
从0开始,表示在nsalt
中的当前位置,因此应该在len(osalt) - 1
结束。你知道吗相关问题 更多 >
编程相关推荐