Python попадает в If, но возвращает не работает

#python #python-3.x

#python #python-3.x

Вопрос:

Я просто пытаюсь задать простой вопрос hackerrrank. Код, который я придумал, выводит ответ, но не возвращает его. Я не уверен, почему.

 def myjump(c,j):
    if len(c) <= 1:
        print("answer: ",j)
        return j
    elif len(c) > 2:
        if c[2] == 0:
            c = c[2:]
        else:
            c = c[1:]
    else:
        c = c[1:]

    j  = 1
    myjump(c,j)

    return "Test"

def jumpingOnClouds(c):
    if len(c) <= 1:
        return 0

    res = myjump(c,0)
    print("return: ",res)
    return res

result = jumpingOnClouds([0,0,1,0,0,1,0])
  

Вывод:

 ('answer: ', 4)
('return: ', 'Test')
  

Я не понимаю, почему код, похоже, попадает в блок «if len (c) <= 1:» и печатает число, но не попадает в этот возврат?

Комментарии:

1. Вероятно, в вопросе должно быть объяснено, что должен делать код, и / или ссылка на назначение Hackerrank.

2. Мне, вероятно, не нужно было рекурсивное решение, но я понимаю, благодаря комментарию tripleee. Добавление return myjump(c,j) работает

Ответ №1:

У вас есть рекурсивная функция; рекурсивный вызов этого не return myjump(c, j) делает, поэтому вы разрываете цепочку (если это вообще должно было быть рекурсивным — может быть, сам вызов функции является ошибкой?)