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



例如,假设用户输入"turn"作为字符串1,而对于字符串2,则输入"turner"。我该如何创建一个代码来比较两个字符串的每个字符及其索引。到目前为止,我已经有这样的东西在进行

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)

如果您想提取两个输入字符串的公共前缀,可以将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

您可以使用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对这个问题的评论,这里有关于字符串方法的更多信息。


编辑:您询问了使用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))

最新更新