我是Python的初学者,尝试解码这个javascript序列。我不仅是Python的初学者,对javascript的理解更差:)我知道我可以把它放到一个在线解码器中,比如:http://coderstoolbox.net/string/,但我想自己处理它-更多的是为了练习。。。我用漂亮的汤来获取数据,所以我有它的功能可以解码。在
如果有人能给我指出python中的等效函数,我将不胜感激。在
function encode(str){
var t=''; var s=unescape(str);
var x=Math.round(Math.sqrt(49));
for(var i=0;i<s.length;i++) t+=
String.fromCharCode(s.charCodeAt(i)^(i%2?x:0));
print(t);
}
到目前为止,我的理解是:
谢谢你的阅读!在
编辑:有没有一个python库可以运行这段代码?我以前用bash和rhino做过这件事,但是Python中的替代品对于初学者来说似乎有点可怕,比如spidermonkey等等。。。在
我不懂Python,但我可以解释一下这里发生了什么,以便您可以用Python重写。在
1)函数encode是声明的而不是赋值的,因此在JavaScript中,它将被提升到其父函数的顶部(如果有)。在
2)函数编码内部有4个变量将被提升到函数编码的顶部:
3)循环索引从0开始,不迟于索引大小与变量s上的字符长度相同
4)循环是以草率的方式编写的,没有大括号,因此它在第一个换行处终止,这意味着变量t正在执行一个字符串concat,以反映变量s
5)以string对象开头的下一行看起来应该在循环中,但实际上不是,因为这段代码太草率了。不管怎样,这都无关紧要,因为变量s并没有真正用于任何进一步的操作。在
6)print函数使用变量t作为参数。变量t应该看起来与变量s相同,这可能不是本代码的原始作者想要的。在
7)我不知道什么是指纹。也许原作者的意思是警觉或者控制台.log而不是印刷品。在
1)与unescape等价的python在python2.x系列中是urllib.unquote(),在python3.x系列中是{a2}
2)你猜最简单的方法就是做
x = 7
3)在字符串宪章上循环的最简单方法是执行
for c in string:
,但是要有一个您应该做的索引for i,c in enumerate(string):
4)该字符串.charChodeAt(c) 与chr(c)相同
最后,我将复制循环部分,如下所示:
事实上,由于字符串不会发生变化,因此使用临时数组来生成appends比处理字符串更有效
相关问题 更多 >
编程相关推荐