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。