正如您所看到的,程序会询问用户两个字符串,它应首先询问较长的字符串,然后需要检查整个较长字符串以查找较短字符串的实例。如果我找到一个,打印出匹配开始的索引。并且程序执行此操作直到它检查整个较长的字符串。我是python的新手,我遇到了困难,如果有任何建议请把它放在新手级别,所以我理解,不要跳进任何先进的技术。该程序也应该是上限敏感的。 我试图通过使用切片,索引和使用循环来找到较短的纵梁并将其索引多次(见投影输出)。
def main():
longer = [input("First (longer) string: ")]
shorter = input("Second (shorter) string: ")
for shorter in longer:
print("at index ","found a slice of ", shorter)
main
我的预计输出应该是这样的:
longer: she sells seashells by the seashore.
shorter: sea
at index 10 found a slice of sea
at index 27 found a slice of sea
答案 0 :(得分:0)
好吧,为了在较长的时间内首次出现较短的字符串,您可以使用:
longer.find(shorter)
根据以下评论的要求,您可以编写自己的查找方法:
def find_str(s, char):
index = 0
if char in s:
c = char[0]
for ch in s:
if ch == c:
if s[index:index+len(char)] == char:
return index
index += 1
return -1
print(find_str("she sells seashells by the seashore", "sea"))
答案 1 :(得分:0)
请试试这个:
a = 'she sells seashells by the seashore'
b = 'sea'
for v in [ i.start() for i in re.finditer(r'' + b + '',a) ]:
print "at index {0} found a slice {1}".format(v,b)