我正在尝试学习基本的 Python,但我似乎无法使用 while 循环返回值。我正在从我正在阅读的指南中复制语法,但是当我运行它时它似乎不起作用。我不确定我可能有不同的版本。
不管怎样,我只是在胡闹,得到了这段代码
def fact(x):
count = 1
sum = 0
while count <= x:
sum = count * sum
count + 1
else:
return sum
我什至不知道这是否正确计算了阶乘,我不在乎,我只是想让它返回一个值。怎么了?为什么我不能使用返回?当我用
替换 return 时,我不确定出了什么问题 display,
还是不行。
请您参考如下方法:
在您的 while 循环中,您实际上并未将 count 设置为 count + 1 - 您只是在声明 count + 1,它不会重新分配变量:
In [1]: count = 1
In [2]: count + 1
Out[2]: 2
In [3]: count
Out[3]: 1
你会想要使用像count += 1这样的东西。此外,您将遇到以下问题:
sum = count * sum
由于它最初为 0,因此无论计数是多少,您每次都将其重置为 0。如果仍然适合您,您可以尝试将其设置为 1,但您可能需要仔细考虑您要尝试做什么。使用了带有 while 的 else 语句,但在这里您可以在满足 while 条件后退出 block 并以这种方式返回变量.
