2014-11-21 2 views
-1
def main(): 
    string = raw_input("string:") 
    pattern = raw_input("pattern:") 
    end = len(string) 
    recursiveinsertPattern(string,pattern) 

def recursiveinsertPattern(string, pattern): 
    if len(string) == 1: 
     return "" 
    else: 
     print string[0]+pattern+recursiveinsertPattern(string[1:],pattern), 

Так что мне это нужно для выводаРекурсия - не конкатенации «ул» и «NoneType» объекты

*h*e*l*l*o* 

, если входной строки hello и входной паттерн *. Но я получаю эту ошибку при попытке добавить последний прогон через:

TypeError: cannot concatenate 'str' and 'NoneType' objects

+0

, Что использование шаблона Вот??? – Hackaholic

+0

Я не уверен, почему это не отображает их, но есть звездочки между каждой буквой в приветствии – mandark

+0

, потому что u выполняет конкатенирование шаблона – Hackaholic

ответ

0

Причина ваша функция recursiveinsertPattern только вернуться «», когда len(string) == 1 и None иначе.

Я бы изменить эту функцию так, что она выглядит следующим образом:

def recursiveinsertPattern(string, pattern): 
    if len(string) == 1: 
     return "" 
    else: 
     return string[0]+pattern+recursiveinsertPattern(string[1:],pattern) 

И print результат этой функции в main()

0

Вместо печати результат recursiveinsertPattern, вы хотите, чтобы вернуть его. Ошибка заключается в том, что вы не возвращаете значение для recursiveinsertPattern. Вы хотите:

def main(): 
    string = raw_input("string:") 
    pattern = raw_input("pattern:") 
    end = len(string) 
    print recursiveinsertPattern(string,pattern) 

def recursiveinsertPattern(string, pattern): 
    if len(string) == 1: 
     return "" 
    else: 
     return string[0]+pattern+recursiveinsertPattern(string[1:],pattern), 
0

изменить Также ваше состояние .. а 1 изменения его 0 так, что будет включен последний символ .. просто скопировать и вставить этот фрагмент

def recursiveinsertPattern(string, pattern): 
if len(string) == 0: 
    return "" 
else: 
    return string[0]+pattern+recursiveinsertPattern(string[1:],pattern) 
Смежные вопросы