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

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

спасибо

4
07 апр. '10 в 9:48
источник поделиться
5 ответов

Попробуйте вместо этого использовать 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
9
07 апр. '10 в 9:51
источник
print ('s' in a)     # False
print ('1234' in a)  # True

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

print a.find('s')    # -1
print a.find('1234') # 0
6
07 апр. '10 в 9:50
источник

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

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

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

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

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

Удачи!

3
07 апр. '10 в 10:27
источник

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

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

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

3
07 апр. '10 в 10:00
источник

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

def sea (str, str1):

if(str1[0:] in str):

    return "yes"
else:
    return "no"
print(sea("sahil","ah"))
0
10 янв. '18 в 10:19
источник

Посмотрите другие вопросы по меткам или Задайте вопрос