Условие «Нет» при наивном сопоставлении шаблонов

#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 спасибо за ваше предложение. Постараюсь сейчас