写一个排序程序,希望在n == 1时重复处理



我正在学习枯燥的python书籍,并且以前根本没有编码经验。我刚刚研究了一个collatz系统,我很好奇如何无限循环这个系统。附件是我到目前为止的代码。

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:
~~~

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

好的,我查看了评论中提到的链接,并意识到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的艺术,直到它工作为止。

最新更新