我花了几周的时间学习Python。
在用户的指导下:Stackoverflow上的'Lost',我能够弄清楚如何构建一个简单的解码器程序。他提出了一个代码,我改变了一些东西,但对我来说重要的是我理解发生了什么。我了解此代码的97%,但except: i += 1
中的decode()
行除外。截至目前,代码有效,但我想了解这一行。
所以基本上这段代码根据特定标准对加密字进行解扰。您可以输入此示例加密字来试用它。 "0C1gA2uiT3hj3S"
答案应为"CATS"
我尝试用值错误替换except:i += 1
,因为我从未见过具有操作且没有错误子句的Try / Except条件。但用Value Error替换它创建了一个永无止境的循环。
我的问题是编写except:i += 1
的目的是什么。
'迷失',如果你在那里,你可以回答这个问题。对不起,关于旧帖子
def unscramble(elist):
answer = []
i = 0
while i <= len(elist):
try:
if int(elist[i]) > -1:
i = i + int(elist[i]) + 1
answer.append(elist[i])
except:
i += 1
return "".join(answer)
def boom():
eword = input("paste in your encrypted message here >> ")
elist = list(eword)
answer = unscramble(elist)
print (answer)
clear()
boom()
答案 0 :(得分:0)
目的是将i
提前一,跳过当前字符,以防转换为int
失败,即如果elist[i]
不是数字。
答案 1 :(得分:0)
有一些错误,可能发生在try-Block中:
elist[i]
超出索引范围,因为while循环运行一个索引到远。i = i + int(elist[i]) + 1
不是数字,导致ValueError def unscramble(elist):
answer = []
i = 0
while i < len(elist):
i += int(elist[i]) + 1
answer.append(elist[i])
i += 1
return "".join(answer)
变大,下一个索引访问也导致IndexError 无论哪种方式,except子句都会忽略下一个字符。循环继续。
正确的实施不需要任何例外:
compile 'com.google.code.gson:gson:2.4'