我是python的新手,一直在努力嘗試和學習一些編程問題。我的問題在於這個程序的第二個功能。我希望程序返回的是每個要查找的子字符串位於input_string中的位置。自制find函數運行但不返回
即
multifind("Ni! Ni! Ni! Ni!", "Ni", 0, 20)
應該返回"0,4,8,12"
然而,當我在IDE中運行它,程序運行,但沒有返回。我想知道是否有人可以告訴我在程序中導致這一點的地方/什麼? 最好以初學者可以理解的方式。
def find(input_string, substring, start, end):
x = (len(substring))
for i in range(0, len(input_string)):
if input_string[i:(i+x)] == substring:
return i
else:
i += 1
return -1
def multi_find(input_string, substring, start, end):
loop = True
nulist = ""
r = start - 1
while loop:
r = find(input_string,substring, r + 1, end)
if r != -1:
if nulist == "":
nulist += str(r)
else:
nulist += "," + str(r)
else:
loop = False
return nulist
您確定要在find函數中返回-1嗎? – kuskmen
函數的主體需要縮進。在python縮進中你不能馬虎。 – Barmar
你的'find'函數不使用'start'和'end',它總是從頭開始搜索。 – Barmar