Как найти строку, содержащуюся в другой строке

a='1234;5'
print a.index('s')

ошибка:

> "D:\Python25\pythonw.exe"  "D:\zjm_code\kml\a.py" 
Traceback (most recent call last):
  File "D:\zjm_code\kml\a.py", line 4, in <module>
    print a.index('s')
ValueError: substring not found

спасибо

Ответ 1

Попробуйте вместо этого использовать find() - это скажет вам, где он находится в строке:

a = '1234;5'
index = a.find('s')
if index == -1:
    print "Not found."
else:
    print "Found at index", index

Если вы просто хотите знать, есть ли строка там, вы можете использовать in:

>>> print 's' in a
False
>>> print 's' not in a
True

Ответ 2

print ('s' in a)     # False
print ('1234' in a)  # True

Используйте find, если вам нужен и индекс, но не хотите, чтобы возникло исключение.

print a.find('s')    # -1
print a.find('1234') # 0

Ответ 3

вы можете использовать оператор in, если вы просто хотите проверить, находится ли подстрока в строке.

if "s" in mystring:
   print "do something"

в противном случае вы можете использовать find() и проверить значение -1 (не найдено) или используя index()

Ответ 4

str.find() и str.index() почти идентичны. самое большое различие заключается в том, что, когда строка не найдена, str.index() выдает ошибку, как тот, который у вас есть, а str.find() возвращает -1, поскольку другие отправили.

существует два сестра-метода, называемых str.rfind() и str.rindex(), которые запускают поиск с конца строки и прокладывают путь к началу.

Кроме того, как уже показали другие, операторы in (а также not in) также являются действительными.

Наконец, если вы пытаетесь искать шаблоны в строках, вы можете рассмотреть регулярные выражения, хотя я думаю, что слишком много людей используют их, когда они переполнены. в других (известных) словах: теперь у вас есть две проблемы.

что это касается всей информации, которую я имею сейчас. однако, если вы изучаете Python и/или программирование обучения, одно очень полезное упражнение, которое я даю своим ученикам, заключается в том, чтобы попытаться построить *find() и *index() в коде Python самостоятельно или даже in и not in (хотя как функции). вы получите хорошую практику, проходящую через строки, и у вас будет лучшее понимание того, как работают существующие методы строк.

Удачи!

Ответ 5

Это правильный способ проверить, присутствует ли подстрока в строке или нет.

def sea (str, str1):

if(str1[0:] in str):

    return "yes"
else:
    return "no"
print(sea("sahil","ah"))