Я видел поток о том, как сохранить счет в рекурсивной функции, но я не совсем последовал за ответом, и он также, похоже, не применим к тому, что я ищу (по крайней мере, от чего Я мог бы так жаль, если это повторяющийся вопрос!). Я работаю над фрагментом кода, чтобы расшифровать текст, который был перенесен в разные места. Я построил рекурсивную функцию, которая хорошо работает, чтобы сдвинуть текст до тех пор, пока он не найдет правильный сдвиг и не вернет сдвинутый текст, но я не могу заставить функцию возвращать количество повторений.подсчет итераций в рекурсии python
text_to_shift = apply_coder(text[start:], build_decoder(1))
Ltext = text_to_shift.split()
for w in Ltext:
if is_word(wordlist, w) == True:
text = ' '.join(Ltext)
return text
else:
text = ' '.join(Ltext)
return find_best_shifts_rec(wordlist, text, start)
Я мог бы написать это как цикл while, но мне нравится элегантность того, что я написал. Я склоняюсь к глобальной переменной (которую я собираюсь попробовать после этого), но я чувствую, что есть лучшее решение. Заранее благодарю за ответ или за более подробное объяснение того, о котором я упоминал.
Это не ваша функция. Нам не хватает, по крайней мере, первой строки, начиная с 'def'. (Кроме того, «элегантность» и «склонность к глобальной переменной» не входят в одну и ту же должность.) – user2357112
Дешевый и неприятный способ, который часто работает достаточно хорошо, - это посмотреть на глубину стека. –
жаль, что я забыл добавить в заголовок для функции: def find_best_shifts_rec (wordlist, text, start): и что apply_coder() и build_decoder() - это функции, которые я ранее написал и работал так, как мне это нужно. Короче говоря, они сдвигают данный текст назад 1 письмо –