как найти, содержится ли строка в другой строке - PullRequest
5 голосов
/ 07 апреля 2010
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

спасибо

Ответы [ 6 ]

11 голосов
/ 07 апреля 2010

Попробуйте использовать 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
6 голосов
/ 07 апреля 2010
print ('s' in a)     # False
print ('1234' in a)  # True

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

print a.find('s')    # -1
print a.find('1234') # 0
3 голосов
/ 07 апреля 2010

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

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

Кроме того,

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

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

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

удачи!

3 голосов
/ 07 апреля 2010

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

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

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

0 голосов
/ 14 августа 2018

Давайте попробуем это согласно нижеуказанному.

метод 1:

if string.find("substring") == -1:
 print("found")
else:
 print("not found")

Метод 2:

 if "substring" in "string":
  print("found")
 else:
   print("not found")
0 голосов
/ 10 января 2018

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

def sea (str, str1):

if(str1[0:] in str):

    return "yes"
else:
    return "no"
print(sea("sahil","ah"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...