Python 当循环代码继续运行时
出于某种原因,这段代码不会打印任何内容,也不会停止运行,有人能告诉我这里出了什么问题吗Python 当循环代码继续运行时,python,list,while-loop,Python,List,While Loop,出于某种原因,这段代码不会打印任何内容,也不会停止运行,有人能告诉我这里出了什么问题吗 l = [1,2] i = 0 k = l[i]+l[i+1] while k <= 10: l.append(k) i += 1 print l k的值,因此循环条件是在使用当前值i0的循环之前设置的,并且在循环执行期间不会更改。您必须根据循环中i的新值重新分配k,以使其发生更改。您没有对k变量进行任何更改。一旦您计算了K的值,代码就会在while循环中存储,因为K的值永远不会改变
l = [1,2]
i = 0
k = l[i]+l[i+1]
while k <= 10:
l.append(k)
i += 1
print l
k的值,因此循环条件是在使用当前值i0的循环之前设置的,并且在循环执行期间不会更改。您必须根据循环中i的新值重新分配k,以使其发生更改。您没有对k变量进行任何更改。一旦您计算了K的值,代码就会在while循环中存储,因为K的值永远不会改变,您只需将K的值添加到列表中即可。不确定python,
但是看起来您也更新了K的值,不确定python语法中while循环的范围是什么。只需移动包含K的行:
l = [1,2]
i = 0
k = l[i]+l[i+1]
while k <= 10:
l.append(k)
i += 1
k = l[i]+l[i+1]
print l
Python计算k的值,使k不是表达式,而是该表达式的结果:
k = l[i]+l[i+1] # In your case it's l[0] + l[1] = 3
您可能希望对每个循环计算k:
l = [1,2]
i = 0
for i in range(0, 10 + 1):
l.append(l[i] + l[i + 1])
print l
为了好玩,一个更具Pythonic风格的斐波那契序列生成器:
def Fibonacci():
a, b = 0, 1
while True:
yield a
a += b
a, b = b, a
for n in Fibonacci():
raw_input(n)
在while循环中不修改k。