gpt4 book ai didi

python - 这个 while 循环是如何计算的? (x = 函数(x))

转载 作者:行者123 更新时间:2023-12-01 00:40:24 24 4
gpt4 key购买 nike

我正在做一个“用Python自动化无聊的东西”的测验,在对这个问题进行了一些修改之后,我终于找到了一个有效的解决方案(在我的一个计算机科学伙伴的帮助下) 。测验要求我编写一个执行 Collat​​z 序列的程序。

我理解所有代码背后的逻辑,除了最后一行。

这是我的代码,带有一些注释:

def collatz(number):
if number % 2 == 0:
print(number // 2)
return number // 2
elif number % 2 == 1:
print(3 * number + 1)
return 3 * number + 1

guess = input("Your guess please ")
while guess != 1:
guess = collatz(int(guess))

程序的输出是一个数字序列,因为 while 循环以某种方式重新迭代函数的返回值,并将其用于另一次计算。

我的问题是最后一行。我的理解是这样的:

  1. 一旦进入 while 循环,就会使用我的输入值调用我的函数“collat​​z”
  2. 该函数已运行,并且计算了我的输入,并根据输入,我得到了偶数或奇数计算作为返回
  3. 这就是我的大脑受伤的地方!
  4. “guess = collat​​z(...)”行现在是否不断更新“guess”以等于函数返回的值?如果真是这样的话,那我就完全明白这个流程了。如果不是这样,那么我就不明白返回的值是如何不断地用于新的计算的。

还有,这就是所谓的“递归”吗?

最佳答案

简短回答:

是的。

更长的答案:(仍然很短)

collat​​z 函数返回一个分配给guess 的值。

此外,这称为递归,递归是一个调用自身的函数。

关于python - 这个 while 循环是如何计算的? (x = 函数(x)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com