Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/137.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
Python 在相同索引下查找两个不同字符串中的匹配字母数_Python - Fatal编程技术网

Python 在相同索引下查找两个不同字符串中的匹配字母数

Python 在相同索引下查找两个不同字符串中的匹配字母数,python,Python,我很难完成python代码 重叠(“”,'hello')→ 0 当字符串的长度匹配时,我成功地获取了数字,但是如果其中一个字符串的长度小于另一个字符串的长度。我总是把索引弄得超出范围。有人能帮我完成这个吗 def overlap(string1,string2): count = 0 for i in range(len(string1)): for j in range(len(string2)): if string1[i] == st

我很难完成python代码

重叠(“”,'hello')→ 0

当字符串的长度匹配时,我成功地获取了数字,但是如果其中一个字符串的长度小于另一个字符串的长度。我总是把索引弄得超出范围。有人能帮我完成这个吗

def overlap(string1,string2):
    count = 0
    for i in range(len(string1)):
        for j in range(len(string2)):
            if string1[i] == string2[j]:
                count = count + 1
                i+=1
            else:
                i+=1
        return count
当通过函数调用运行此函数时。如果两个字符串相等,它会给出正确的数字,但如果其中一个更小或更长,则其索引超出范围。
感谢

为迭代
min(len(string1),len(string2))
的循环创建一个
,当一个字符串小于另一个字符串时,您可以避免问题,请参见下面的示例:

def overlap(string1,string2):
    count = 0
    for i in range(min(len(string1), len(string2))):
        if string1[i] == string2[i]:
            count = count + 1
    return count

print overlap('summer','winter') #2
print overlap('abcb','dbeb') #2
print overlap('summer','sum') #3
print overlap('','winter') #0

祝你好运

为迭代
min(len(string1)、len(string2))
循环创建一个
,当一个字符串小于另一个字符串时,可以避免问题,请参见下面的示例:

def overlap(string1,string2):
    count = 0
    for i in range(min(len(string1), len(string2))):
        if string1[i] == string2[i]:
            count = count + 1
    return count

print overlap('summer','winter') #2
print overlap('abcb','dbeb') #2
print overlap('summer','sum') #3
print overlap('','winter') #0

祝你好运

替换嵌套循环,仅对较小的长度重复

def overlap(string1, string2):
    count=0;
    len1= len(string1)
    len2= len(string2)
    smallLen= len1
    if len2<len1:
        smallLen= len2

    for i in range(smallLen):
        if string1[i]== string2[i]:
            count+= 1
    return count
def重叠(string1、string2):
计数=0;
len1=len(string1)
len2=len(string2)
smallLen=len1

如果len2替换嵌套循环,仅对较小长度重复

def overlap(string1, string2):
    count=0;
    len1= len(string1)
    len2= len(string2)
    smallLen= len1
    if len2<len1:
        smallLen= len2

    for i in range(smallLen):
        if string1[i]== string2[i]:
            count+= 1
    return count
def重叠(string1、string2):
计数=0;
len1=len(string1)
len2=len(string2)
smallLen=len1

如果len2按照需要完成的事情的顺序来考虑它,那么您必须首先确定两个给定字符串中哪一个具有最短的长度,因为这将是循环迭代次数的界限。在Python中,可以执行如下条件赋值:

maxloop = len(str1) if len(str1) <= len(str2) else len(str2)

单个
if
语句检查两个字符串中
i
位置的字符,看它们是否相等,如果相等,则将向重叠计数器添加一个字符。然后在循环结束后简单地返回计数。

按照需要完成的事情的顺序考虑,您必须首先确定两个给定字符串中哪一个长度最短,因为这将是循环迭代次数的界限。在Python中,可以执行如下条件赋值:

maxloop = len(str1) if len(str1) <= len(str2) else len(str2)
单个
if
语句检查两个字符串中
i
位置的字符,看它们是否相等,如果相等,则将向重叠计数器添加一个字符。然后在循环结束后返回计数。

尝试以下操作:

count = 0
if len(string1) < len(string2):
    for i in range(len(string1)):
        if string1[i] == string2[i]:
            count += 1
else:
    for i in range(len(string2)):
        if string1[i] == string2[i]:
            count += 1
return count
count=0
如果len(string1)
试试这个:

count = 0
if len(string1) < len(string2):
    for i in range(len(string1)):
        if string1[i] == string2[i]:
            count += 1
else:
    for i in range(len(string2)):
        if string1[i] == string2[i]:
            count += 1
return count
count=0
如果len(string1)
您得到错误的输入是什么?当较小的字符串是字符串1,较大的字符串是字符串2时会发生错误,例如:字符串1:summer、字符串2:sum,工作正常,但字符串1:sum和字符串2:summer会产生索引错误,我的老师使用了一个测试文件,所以我们无法更改输入,因为您得到了什么输入错误?当较小的字符串是字符串1,较大的字符串是字符串2时,会发生这种情况,例如:字符串1:summer,字符串2:sum,工作正常,但字符串1:sum和字符串2:summer给出了索引错误,我的老师使用测试文件,所以我们不能更改输入。很高兴你能帮忙欢迎很高兴你能帮忙