Мне кажется, у меня возникли некоторые проблемы с пониманием того, почему мои целые числа, которые я добавляю в список, остаются только в цикле, но вне него список пуст.
В этом упражнении я пытаюсь создать программу, которая принимает число и использует рекурсивную функцию для вывода последовательности сиракуз.
import sys
def syracuse(nr):
''' syracuse function '''
nr = int(nr)
seq = []
if nr != 1:
if (nr % 2 != 0):
n = 3*nr+1
else:
n = nr // 2
seq.append(n)
print(seq)
syracuse(n)
else:
return seq
def main(argv):
''' main function '''
if len(argv) == 2:
print(syracuse(argv[1]))
else:
print("Error! One number should be included in the query."
.format(argv[0]), file = sys.stderr)
if __name__ == '__main__':
main(sys.argv)
При вводе '5' мой вывод:
[16]
[8]
[4]
[2]
[1]
None
Итак, мой вопрос: почему мой список 'seq' выводит 'None', когда переменная 'n'действительно добавляется к нему в моем цикле if nr! = 1.Как вы можете извлечь переменные из циклов?Это то, что я не понимаю, или есть что-то еще?
Надеюсь, мой вопрос последовательный.Заранее спасибо.
Обратите внимание, что хотя я знаю, что Python не работает хорошо для рекурсивных функций, это упражнение, и я должен его реализовать.