#python
Вопрос:
Я думал return -1 if index is None else index
, что вернет -1, когда индекс равен None
. Но это не работает. Почему?
input text: sample example for pattern matching input pattern: and
Ошибка: %d format: a number is required, not NoneType
def pattern_matching(text_string, pattern): for index in range(len(text_string) - len(pattern) 1): j = 0 while(j lt; len(pattern)): if (text_string[index j] != pattern[j]): break j = 1 if (j == len(pattern)): return -1 if index is None else index print("First pattern found at Index %d"%pattern_matching(text, pattern))
Комментарии:
1. Если
j == len(pattern)
значение равно false, то ваш оператор return не вычисляется, и значение по умолчанию, возвращаемое функцией, равноNone
. Хотя это только мое предположение. Попробуйте вернуть -978 или что-то еще из функции после вашего предложения if и посмотрите, печатается ли оно.2. @sintribu спасибо за ваше предложение. Постараюсь сейчас