我将如何比较一个字符串输入是否是第二个字符串输入的前缀?

How would I go about in comparing whether one string input is a prefix of the second string input?

例如,用户输入 'turn' 作为字符串 1,对于字符串 2,他们输入 'turnover'。我将如何创建一个代码来比较两个字符串及其索引的每个字符。到目前为止,我正在处理类似的事情

string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))

def prefixes(a,b):
  if len(b) < len(a):
    return False
  else:
    for i in range(len(b)):

prefixes(string_1,string_2)

您可以使用 startswith():

string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))

if string_2.startswith(string_1):
    # Your code here

请注意,如果您需要该功能,startswith() 也可以接受用于索引开始和停止比较的参数。


正如 Mark Mayer, more information is available on string methods here 对问题的评论。


编辑:您要求使用 for 循环来完成此操作。这假设您要检查 string_2 是否以 string_1.

开头
string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))

def prefix_check(short, long);
    for index in range(min(len(short), len(long))):
        if short[index] != long[index]:
            return false
    return true

print(prefix_check(string_1, string_2))

如果您想提取两个输入字符串的 公共前缀 ,您可以结合使用 zip()itertools.takewhile()

from itertools import takewhile


def prefixes(a, b):
    return ''.join(x for x, _ in takewhile(lambda x: x[0] == x[1], zip(a, b)))


string_1 = str(input("Insert first string:"))
string_2 = str(input("Insert second string:"))

print(prefixes(string_1, string_2))

示例输出:

Insert first string: prepare
Insert second string: preparation
prepar