對於學校項目,我必須創建一個名爲find_str的函數,它基本上與.find字符串方法做同樣的事情,但我們不能在我們的定義中使用任何字符串方法。創建您自己的查找字符串函數
項目描述爲:「函數find_str有兩個參數(兩個字符串)。它返回最低索引,第一個參數中找到第二個參數(如果在第一個參數中沒有找到第二個參數,則返回-1參數)。」
我花了很多時間在這個項目上工作,還沒有找到解決辦法。這是我想出了目前的定義:
def find_str (string, substring):
index = 0
length = len (substring)
for ch in string:
if ch == substring [0]:
subindex1 = 0
subindex2 = index
for i in range (length):
if ch == substring [i]:
subindex1 +=1
if subindex1 == length:
return index
ch = string [(subindex2)+1]
subindex2 +=1
index += 1
return "-1"
的代碼此示例只能在某些情況下,但不是全部。
例如:
print (find_str ("hello", "llo"))
回報:
2
,因爲它應該
。
但
print (find_str ("hello", "el"))
回報:
ch = string [(subindex2)+1]
IndexError: string index out of range
我覺得我這得太多,並必須有一個更簡單的方法來做到這一點。任何輸入或幫助將是偉大的!謝謝。
您能否具體說明您的功能何時失效 - 哪些輸入,以及它如何失敗?預期輸出與實際等等 – Blorgbeard
例如:print(find_str(「hello」,「llo」))返回索引2,這是正確的。但是,打印(find_str(「hello」,「el」))返回錯誤 「ch = string [(subindex2)+1] IndexError:字符串索引超出範圍」應該返回索引1時。 – Chadmmiles
您可以使用其他Python模塊,如正則表達式?如果是這樣,你可以匹配主字符串中子字符串的正則表達式並返回它。它不使用任何python字符串方法,只是一個不同的python模塊。 –