编写一个 collat​​z 程序,希望在 n == 1 时重复该过程

Writing a collatz program, wish to repeat process while n == 1

我正在阅读 Boring python 这本书,之前完全没有编码经验。我刚刚在 collat​​z 系统上工作,我很好奇如何无限期地循环系统。附件是我目前的编码。

def collatz(number):
    if number % 2 == 0:
        result1 = number // 2
        print(result1)
        return result1
    elif number % 2 == 1:
        result2 = 3 * number + 1
        print(result2)
        return result2
n = input('Give me a number: ')
while n != 1:
    n = collatz(int(n))
while n == 1:
    ~~~

我很好奇要在 ~~~ 中放入什么来实现这个循环。

好的,我查看了评论中提到的 link,并意识到 while True 循环将是明智的解决方案。话虽如此,我想看看我是否可以以某种方式构建我已经构建的内容,并使用以下代码解决我的问题:

def collatz(number):
    if number % 2 == 0:
        result1 = number // 2
        print(result1)
        return result1
    elif number % 2 == 1:
        result2 = 3 * number + 1
        print(result2)
        return result2
n = input('Give me a number: ')
while n != 1:
    n = collatz(int(n))
while n == 1:
    n = input('Give me a number: ')
    while n != 1:
        n = collatz(int(n))

我知道这不是最紧凑或最有效的答案,但它是为了适应我已经构建的设计。如果我想让它成为一个专业项目,我会使用精简版,也就是说我学到了更多 Python 修补它直到它起作用的艺术。