在Python中如何使用循环返回值?
我试图学习基本的python,但似乎无法使用while循环返回值。我正在从我正在阅读的指南中复制语法,但当我运行它时,它似乎不起作用。我可能有不同的版本,我不确定 不管怎样,我只是在胡闹,得到了这个密码在Python中如何使用循环返回值?,python,loops,Python,Loops,我试图学习基本的python,但似乎无法使用while循环返回值。我正在从我正在阅读的指南中复制语法,但当我运行它时,它似乎不起作用。我可能有不同的版本,我不确定 不管怎样,我只是在胡闹,得到了这个密码 def fact(x): count = 1 sum = 0 while count <= x: sum = count * sum count + 1 else: return sum 它仍然不起作用 试试看: def fact(x):
def fact(x):
count = 1
sum = 0
while count <= x:
sum = count * sum
count + 1
else:
return sum
它仍然不起作用 试试看:
def fact(x):
count = 1
sum = 1
while count <= x:
sum *= count
count += 1
return sum
如果您在0
处启动计数变量,您将得到0
,因为0*n==0
对于所有n
在这里,else
也完全没用。试试:
def fact(x):
count = 1
sum = 1
while count <= x:
sum *= count
count += 1
return sum
如果您在0
处启动计数变量,您将得到0
,因为0*n==0
对于所有n
else
在这里也是完全无用的。在循环中,您实际上并没有将计数
设置为等于计数+1
-您只是声明计数+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
条件后退出块,并以这种方式返回变量。在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
条件后退出块,并以这种方式返回变量。因此,我不知道如何使用python的结构,但您不能单独调用else。您将永远不会返回,因为您没有测试else语句的判断值。它需要附加到if语句才能工作
例如,您可能希望执行以下操作:
if x == 1:
return blah
else:
return foo
我也不确定,但这些代码可能根本无法运行。我也不知道显示器是什么,但我很确定它不是你想要的
def fact(x):
count = 1
sumi = 1
while count <= x:
sumi = count * sumi
count = count + 1
return sumi
请阅读:
这将帮助您了解控制结构,这样您就可以让您的循环执行您想要的操作。所以我不知道您在使用python结构时遵循什么,但您不能单独调用其他对象。您将永远不会返回,因为您没有测试else语句的判断值。它需要附加到if语句才能工作
def fact(x):
count = 1
sumi = 1
while count <= x:
sumi = count * sumi
count = count + 1
return sumi
例如,您可能希望执行以下操作:
if x == 1:
return blah
else:
return foo
我也不确定,但这些代码可能根本无法运行。我也不知道显示器是什么,但我很确定它不是你想要的
def fact(x):
count = 1
sumi = 1
while count <= x:
sumi = count * sumi
count = count + 1
return sumi
请阅读:
这将帮助您了解控制结构,以便您可以让您的循环执行您想要的操作。def fact(x):
def fact(x):
count = 1
sumi = 1
while count <= x:
sumi = count * sumi
count = count + 1
return sumi
计数=1
sumi=1
当计数<代码>定义事实(x)时:
计数=1
sumi=1
虽然count@Keyser:if
,while
,for
,try
都有一个else
子句。@Keyser:它允许你进行代码优化,通常需要六行代码才能正常实现。@IgnacioVazquez Abrams不确定我是否遵循了。我的意思是,它似乎只是一行额外的代码。不过我们现在要离开主题了:p谢谢你的澄清。@Keyser:如果
,当
,为
,尝试
都有一个else
子句。@Keyser:它让你进行代码优化,通常需要六行代码才能正常实现。@IgnacioVazquez Abrams不确定我是否遵循了。我的意思是,它似乎只是一行额外的代码。不过,我们现在离题了:p谢谢你的澄清。。在这种情况下不需要它,但它不应影响任何内容。已在编辑中修复。不知道while..否则--看起来是个奇怪的功能,虽然它很少使用,但它可以让你不用创建哨兵;你建议的解决方案仍然不起作用。我知道对于相对简单的Python问题,很难以足够快的速度获得答案,但在发布之前,请尝试对答案进行快速测试。IPython非常适合快速编写和测试代码片段。。在这种情况下不需要它,但它不应影响任何内容。已在编辑中修复。不知道while..否则--看起来是个奇怪的功能,虽然它很少使用,但它可以让你不用创建哨兵;你建议的解决方案仍然不起作用。我知道对于相对简单的Python问题,很难以足够快的速度获得答案,但在发布之前,请尝试对答案进行快速测试。IPython非常适合快速编写和测试代码段。奇怪的是,我还没有在任何教程中看到+=运算符。@Jordan肯定很有用:)赋值在Python中不是运算符。只是说,@IgnacioVazquez Abrams,那是针对我的吗?你是说=不是操作员?那是什么?@IgnacioVazquez Abrams你说的副作用是什么意思?我想我理解为什么在这种情况下使用它是错误的,因为它只是每次都将该变量重新分配到相同的值,而从来没有实际更改它的值。奇怪的是,我还没有在任何教程中看到+=运算符。@Jordan肯定很方便:)赋值在Pytho中不是运算符