回答:
とin
:substring in string
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
string.indexOf(substring) != -1
。詳細はこちら
True / False以外のものを探している場合は、次のようにreモジュールを使用するのが最適です。
import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())
s.group()
「助けてください」という文字列を返します。
Pythonの組み込み関数in
or の使用を望まない技術面接でこれを行う方法を検討している場合に、これを追加すると思いますがfind
、これは恐ろしいことですが、実際に起こります。
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
if len(substring) > len(string) return False
、ループ範囲も確認する必要range(len(string)-len(substring))
があります。文字列の最後の2文字に3文字の単語が見つからないためです。(数回の繰り返しを節約します)。
人々は述べたstring.find()
、string.index()
とstring.indexOf()
のコメントでは、と私は(に応じてそれらをここにまとめPythonドキュメント):
まず、string.indexOf()
メソッドはありません。Deviljhoが投稿したリンクは、これがJavaScript関数であることを示しています。
2番目にstring.find()
、string.index()
実際には部分文字列のインデックスを返します。:唯一の違いは、彼らがサブストリングが見つからない状況を処理する方法であるstring.find()
リターンを-1
しながら、string.index()
上げますValueError
。
In [7]: substring = "please help me out"
In [8]: string = "please help me out so that I could solve this"
In [9]: substring in string
Out[9]: True
def find_substring():
s = 'bobobnnnnbobmmmbosssbob'
cnt = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
cnt += 1
print 'bob found: ' + str(cnt)
return cnt
def main():
print(find_substring())
main()