Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2016 14:18:11

A.N.Onim
Зарегистрирован: 2015-11-08
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с string.find()

Здраствуйте!
Есть ф-ция:

def search(list, field, string):
	result = []
	for book in list:
		print field
		print dict_fields[field]
		print book[dict_fields[field]]
		print string
		if string.find(book[dict_fields[field]], string)>=0:
			result.append(book)
	return result
А вот она выдает ошибку:

То есть на скрине видно, что оба аргумента строки. А выдает ошибку. Почему?

Офлайн

#2 Фев. 19, 2016 14:31:53

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проблема с string.find()

string.find(s, sub[, start[, end]])
Return the lowest index in s where the substring sub is found such that sub is wholly contained in s[start:end].
Return -1 on failure. Defaults for start and end and interpretation of negative values is the same as for slices.
у вас
string.find(book[dict_fields[field]], string)
второй аргумент функции должен быть числом, а не строкой



Отредактировано FishHook (Фев. 19, 2016 14:32:16)

Офлайн

#3 Фев. 19, 2016 15:37:32

A.N.Onim
Зарегистрирован: 2015-11-08
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с string.find()

FishHook
Return the lowest index in s where the substring sub is found such that sub is wholly contained in s.
Return -1 on failure. Defaults for start and end and interpretation of negative values is the same as for slices.

Не пойму - первый аргумент строка в которой ищем, второй строка которую ищем?

Офлайн

#4 Фев. 19, 2016 16:04:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проблема с string.find()

Вы метод строки вызываете, а не функцию модуля string.
Не надо использовать зарезервированные языком слова: string, list и не будет путаницы



Офлайн

#5 Фев. 19, 2016 16:04:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проблема с string.find()

if string.find(book[dict_fields[field]])>=0:



Офлайн

#6 Фев. 19, 2016 16:14:17

A.N.Onim
Зарегистрирован: 2015-11-08
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с string.find()

FishHook
Ааааа, понял)))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version