Python 函数 return 将字符串不同的第一个位置作为索引。如果字符串相同,则应 return -1

Python function that returns the first location as index in which the strings differ. If the strings are identical, it should return -1

我正在编写一个使用函数的 python 程序,例如我的函数名称是 first_difference(str1, str2),它接受两个字符串作为参数,returns 中的第一个位置字符串不同。如果字符串相同,则应 return -1。但是,我无法获得字符的索引。我现在只有第一个不同位置的字符,有没有人知道在循环中获取字符索引号的好方法?

def first_difference(str1, str2):
    """
    Returns the first location in which the strings differ.
    If the strings are identical, it should return -1.
    """
    if str1 == str2:
        return -1
    else:
        for str1, str2 in zip(str1, str2):
            if str1 != str2:
                return str1


string1 = input("Enter first string:")
string2 = input("Enter second string:")
print(first_difference(string1, string2))

测试用例:

输入

输入第一个字符串:python

输入第二个字符串:cython

输出

输入第一个字符串:python

输入第二个字符串:cython

p

所以目标不是 'p',而是获取索引 0 处的 p 的索引号。

您只需要一个索引计数器如下:

s1 = 'abc'
s2 = 'abcd'

def first_difference(str1, str2):
    if str1 == str2:
        return -1
    i = 0
    for a, b in zip(str1, str2):
        if a != b:
            break
        i += 1
    return i

print(first_difference(s1, s2))