关闭及关闭;Collatz猜想&;python

关闭及关闭;Collatz猜想&;python,python,closures,collatz,Python,Closures,Collatz,我想写一个函数,可以用闭包执行collatz猜想。 我被吸引到这里,我不知道如何将新的数字“a”应用到collatz中,而不是重复数字本身 顺便说一句,我被要求不要使用递归,我必须按顺序打印结果 例如,我必须从241开始,但不是724 def collatz(number): def part_a(): if number%2==0: a = number//2 else: a = number*3+1

我想写一个函数,可以用闭包执行collatz猜想。 我被吸引到这里,我不知道如何将新的数字“a”应用到collatz中,而不是重复数字本身

顺便说一句,我被要求不要使用递归,我必须按顺序打印结果 例如,我必须从241开始,但不是724

def collatz(number):
    def part_a():
        if number%2==0:
            a = number//2
        else:
            a = number*3+1
        return number
    return part_a

fun = collatz(241)
seq = [fun() for i in range(22)]
print(seq)