2014-11-21 3 views
-5

Я пытаюсь сделать функцию, которая вычисляет возникновение данной буквы в слове. Проблема заключается в том, что код является безошибочным, но он не возвращает номер входа, когда я вызываю functionМоя функция ничего не возвращает

def countSubStringMatchRecursive(key, target): 
    if find(target, key)==-1: 
     occ = 0 
     return occ 
    else: 
     countSubStringMatchRecursive(key, target[find(target, key)+1:]) 
     occ = 1 + countSubStringMatchRecursive(key, target[find(target, key)+1:]) 
     return occ 
print occ 
countSubStringMatchRecursive('a', 'sapatara') 
+3

Поместите фактический код здесь не просто IMG – user2097159

+1

Это выглядит как ваш отступы является поддельным. – syrion

+0

Как это ?? !! –

ответ

0

Вы вызываете глобальную функцию поиска, которая не существует. Попробуйте target.find(key) вместо

Редактировать: присмотревшись, у вас есть несколько ошибок и плохой стиль. Вот измененная версия вашей функции, которая делает то, что вы хотите:

>>> def countsub(key, target): 
     i = target.find(key) 
... if i==-1: 
...  return 0 
... else: 
...  return 1 + countsub(key, target[i+1:]) 
... 
>>> countsub('a', 'apatara') 
4 
>>> 
+0

Я импортировал из строки Импортировать* –

Смежные вопросы