私は、2つの引数、すなわちとtarget string
をとる関数を書いています。この関数は、ターゲット文字列内の検索文字列を検索し、ターゲット文字列内の検索文字列がどこにあるかを表す文字列を返す必要があります。文字列内の単語の位置を返す関数(Python)
たとえば、ターゲット文字列が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"
コードが今のように動作しているようですが、私はを検索文字列がターゲット文字列の中央にあるかどうかを判断するためにどの条件を満たさなければならないかを調べるのに問題があります。 len_dif
はSEARCH_STRINGとターゲット文字列の長さの差である
target_string.find(search_string, len_str, len_dif):
:
私の推測では、文は次のようになりますということです。これを行うことで、正しい答えが出力されますが、最終的には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を返します。 –