Найти - Пользователи
Полная версия: рекурсия
Начало » Python для новичков » рекурсия
1
rico
Добрый день.
Не могу разобраться с рекурсией. Нужно, чтобы рекурсивно вызывалась функция, но вызов происходит только один раз. В чем я ошибся?
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)
Singularity
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)
пробуй
rico
Все работает. Спасибо.

Ох уж эти скобочки.
Singularity
rico
ты так же забыл написать условия выхода с рекурсивной функции
rico
Насколько я понял вы говорите про оператор 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)
Singularity
Да, ты прав
dimy44
мне думается что лучше писать
return print_func(func, number-1)
сейчас в данном случае неважно, но когда понадобится от функции возвращение результата своей работы, чтоб не удивляться- почему None а не то, что ожидал.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB