Відповіді:
з 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, більше тут
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(До речі, намагайтеся не називати змінну string, оскільки існує стандартна бібліотека Python з тим самим іменем. Ви можете збити з пантелику людей, якщо це зробите у великому проекті, тому уникайте таких зіткнень - це добра звичка потрапляти.)
Якщо ви шукаєте більше, ніж True / False, вам найкраще використовувати модуль повторень, наприклад:
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або 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))тому що ви не знайдете три буквеного слова в останніх двох літерах рядка. (Економить кілька повторень).
Люди згадували string.find(), string.index()і string.indexOf()в коментарях, і я їх підсумовую тут (згідно з документацією Python ):
Перш за все не існує string.indexOf()методу. Посилання, розміщене Deviljho, показує, що це функція JavaScript.
По-друге, string.find()і string.index()фактично повернути індекс підрядки. Єдина відмінність полягає в тому, як вони обробляють ситуацію з підрядкою, яку не знайдено: string.find()повертається -1під час string.index()підвищення ValueError.
Ви також можете спробувати метод find (). Він визначає, чи відбувається рядковий рядок в рядку або в підрядку рядка.
str1 = "please help me out so that I could solve this"
str2 = "please help me out"
if (str1.find(str2)>=0):
print("True")
else:
print ("False")
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