我正在寫一個函數有兩個參數:一個和target string
。該函數將尋找目標字符串中搜索字符串,並應返回表示其中靶字符串搜索字符串中發現一個字符串。函數返回一個字的位置在一個字符串(蟒蛇)
例如,如果目標字符串是target_string = "Georgia Tech"
和search_string = "Georgia"
,它應返回字符串"Beginning"
。如果搜索字符串是"gia"
它應該返回"Middle"
,如果搜索字符串是"Tech"
它應該返回「結束」
代碼:
def string_finder(target_string, search_string):
len_search = int(len(search_string))
len_target = int(len(target_string))
if search_string in target_string:
if target_string.find(search_string)<=len_search:
return "Beginning"
elif #***missing statement:***
return "Middle"
elif target_string.find(search_string, -len_search):
return "End"
else:
return "Not found"
的代碼似乎工作是現在,但我無法確定應該滿足什麼條件才能確定搜索字符串位於目標字符串的中間。
我的猜測是,聲明應該是這樣的:
target_string.find(search_string, len_str, len_dif):
哪裏len_dif
是SEARCH_STRING和目標字符串的長度之差。通過這樣做,它打印正確的答案,但打亂了最終elif
。所以,如果我運行下面的代碼
print(string_finder("Georgia Tech", "Georgia"))
print(string_finder("Georgia Tech", "gia"))
print(string_finder("Georgia Tech", "Tech"))
print(string_finder("Georgia Tech", "Nothing"))
而不是打印「開始」,「中」,「結束」和「未找到」它打印「開始」,「中」,「中」,「未找到「
如果有人能在正確的方向指向我,我將不勝感激!
請注意,我是相當新的Python和編程是不是真的我的事,直到最近,所以我很容易出現「愚蠢」的錯誤與我這麼光禿禿的。
什麼,如果目標字符串=搜索字符串? – frozen
'len'返回一個整數,而不是一個字符串。沒有理由做'int(len(...))'。 –
您的「開始」的條件是錯誤的。如果它在開始處,'find'將返回0. –