Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
While循环中的Javascript If与Python If语句_Javascript_Python - Fatal编程技术网

While循环中的Javascript If与Python If语句

While循环中的Javascript If与Python If语句,javascript,python,Javascript,Python,我很难将此Javascript代码移植到Python。在Javascript中,函数可以接受两个字符串,例如str1=123456和str2=passwo。然后它将输出类似p1a2s3s4w5o6的内容 在python中,它只是将其组合在一起。有人请告诉我,如果可能的话,如何使用python中的if语句实现这一点。也许我需要换一种方式。谢谢你的帮助 Python示例 def merge(str1, str2): arr1 = str1.split(); arr2 = str2.s

我很难将此Javascript代码移植到Python。在Javascript中,函数可以接受两个字符串,例如str1=123456和str2=passwo。然后它将输出类似p1a2s3s4w5o6的内容

在python中,它只是将其组合在一起。有人请告诉我,如果可能的话,如何使用python中的if语句实现这一点。也许我需要换一种方式。谢谢你的帮助

Python示例

def merge(str1, str2):
    arr1 = str1.split();
    arr2 = str2.split();
    result = "";
    index1 = 0;
    index2 = 0;
    while ((index1 < len(arr1)) or (index2 < len(arr2))):
        if(index1 < len(arr1)):
            result += arr1[index1];
            print("part1")
            index1 = index1+1;
        if(index2 < len(arr2)):
            result += arr2[index2];
            index2 = index2+1;
    print(result);
    return result;
def合并(str1、str2):
arr1=str1.split();
arr2=str2.split();
结果=”;
index1=0;
index2=0;
而((index1
Javascript示例

function merge(str1, str2){
    var arr1 = str1.split("");
    var arr2 = str2.split("");
    var result = "";
    var index1 = 0;
    var index2 = 0;
    while((index1 < arr1.length) || (index2 < arr2.length)){
        if(index1 < arr1.length){
            result += arr1[index1];
            index1++;
        }
        if(index2 < arr2.length){
            result += arr2[index2];
            index2++;
        }
    }
    return result;
}
函数合并(str1、str2){
var arr1=str1.split(“”);
var arr2=str2.split(“”);
var结果=”;
var index1=0;
var index2=0;
而((index1
使用:

这张照片是:

p1a2s3s4w5o6

首先,在python中,语句末尾不需要半列。 其次,在python中拆分()字符串时,默认情况下会从空格中拆分它, 所以它是为您创建一个对象列表。所以不需要拆分,因为python字符串已经是数组了

这是您的固定代码(我只是删除拆分并将参数重命名为arr而不是str):

def合并(arr1、arr2):
result=“”
index1=0
index2=0
而((index1
Python3使用list()将字符串直接类型转换到列表中 并删除分号

使用

而不是

    arr1 = str1.split();
    arr2 = str2.split();
完整代码:

def merge(str1, str2):
    arr1 = list(str1)
    arr2 = list(str2)
    result = ""
    index1 = 0
    index2 = 0
    while ((index1 < len(arr1)) or (index2 < len(arr2))):
        if(index1 < len(arr1)):
            result += arr1[index1]
            print("part1")
            index1 = index1+1
        if(index2 < len(arr2)):
            result += arr2[index2]
            index2 = index2+1
    print(result)
    return result
def合并(str1、str2):
arr1=列表(str1)
arr2=列表(str2)
result=“”
index1=0
index2=0
而((index1
如果两个字符串的长度相同,可以通过列表理解替换整个函数:

result = "".join([f"{str2[ind]}{str1[ind]}" for ind in range(len(str1))])
作为一项功能:

def merge(str1, str2):
    return "".join([f"{str2[ind]}{str1[ind]}" for ind in range(len(str1))])

在python中,不需要半列。
str1.split()
返回空格上拆分的
str1
子字符串列表,因此在本例中是一个字符串列表,如
['abcdef']
。直接迭代str1而不是不需要的arr1。这不一样,这是他的错误。在这里使用
zip
,不要循环索引
def merge(str1, str2):
    arr1 = list(str1)
    arr2 = list(str2)
    result = ""
    index1 = 0
    index2 = 0
    while ((index1 < len(arr1)) or (index2 < len(arr2))):
        if(index1 < len(arr1)):
            result += arr1[index1]
            print("part1")
            index1 = index1+1
        if(index2 < len(arr2)):
            result += arr2[index2]
            index2 = index2+1
    print(result)
    return result
result = "".join([f"{str2[ind]}{str1[ind]}" for ind in range(len(str1))])
def merge(str1, str2):
    return "".join([f"{str2[ind]}{str1[ind]}" for ind in range(len(str1))])