-1

我想在 Python 中转换的 Javascript 代码很少

第一个JS

if (var1.charCodeAt(var2) % 2) var3 = 1;

Python代码

if (ord(var1[var2])) % 2):
var3 = 1:

JS

var4.push(String.fromCharCode(parseInt(var5.substr(var1, 2), 36) - var3));

Python

var4.append(chr(int(var5[var1: 2], 36) - var3))

JS

    for (var1 = 0; var1 < var2.length; var1 += 2) {

Python

var1 = 0
while (var1 < len(arr1)):
    var1+= 2 

有人可以在这里纠正我吗?不太清楚代码。

4

3 回答 3

1

错误:

if (ord(var1[var2])) % 2: #too much parentheses, fixed.
    var3 = 1 #: <- What's this? Also, mind your indentation.

另外,关于最后一个:

var1 = 0
while (var1 < len(arr1)): 
    var1+= 2 

那很好,恭喜。但我更愿意这样做:

for var1 in range(0, len(arr1), 2):
    #do something

那应该这样做。

编辑 原来没有那么多错误。关于第二个,36是要转换的字符串的基数。

于 2013-10-21T13:18:30.637 回答
1

第三个片段可以转换如下:

for var1 in range(0, len(arr1), 2):
    ...
于 2013-10-21T13:21:55.140 回答
1

你应该检查你的索引... JavaScript 中的 charAt 函数似乎是从 1 开始的,而 Python 将字符串视为数组,所以它总是从 0 开始。

例如:var1 = 'abcdefghijklmnopqrstuvwxyz'; var2 = 13

JSvar1.charAt(var2)产生'n',而 Pythonvar[var2]产生'o'.

此外,请查看字符串切片之间的差异。JSsubstr将 start 和 length 作为参数,但 Python 使用 start 和 end 位置。

于 2013-10-21T13:27:36.827 回答