编写一个 collatz 程序,希望在 n == 1 时重复该过程
Writing a collatz program, wish to repeat process while n == 1
我正在阅读 Boring 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:
~~~
我很好奇要在 ~~~ 中放入什么来实现这个循环。
好的,我查看了评论中提到的 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 修补它直到它起作用的艺术。
我正在阅读 Boring 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:
~~~
我很好奇要在 ~~~ 中放入什么来实现这个循环。
好的,我查看了评论中提到的 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 修补它直到它起作用的艺术。