Форум сайта python.su
0
Добрый день.
Не могу разобраться с рекурсией. Нужно, чтобы рекурсивно вызывалась функция, но вызов происходит только один раз. В чем я ошибся?
def print_hello(): print 'Hello' return def print_func(func, number): if number <= 0: print 'finish' else: func print number print_func(func, number-1) print_func(print_hello(), 5)
Офлайн
75
def print_hello(): print 'Hello' def print_func(func, number): if number <= 0: print 'finish' return else: func() print number print_func(func, number-1) print_func(print_hello, 5)
Офлайн
0
Все работает. Спасибо.
Ох уж эти скобочки.
Офлайн
75
rico
ты так же забыл написать условия выхода с рекурсивной функции
Офлайн
0
Насколько я понял вы говорите про оператор return в блоке if. Но так без него ведь тоже работает? Или есть какой-то нюанс?
def print_hello(): print 'Hello' def print_func(func, number): if number <= 0: print 'finish' else: func() print number print_func(func, number-1) print_func(print_hello, 5)
Офлайн
75
Да, ты прав
Офлайн
мне думается что лучше писать
return print_func(func, number-1)
Офлайн