【发布时间】:2021-11-02 18:26:29
【问题描述】:
我在 else 语句中有一个 while 循环,它包含在另一个 while 循环中。像这样:while->else->while。我正在更新内部while循环中的一些变量,这些变量也形成了外部while循环的条件。我期望的是,一旦内部 while 循环中的变量采用破坏外部 while 循环条件的值,外部 while 循环就会中断。但这似乎没有发生,内部 while 循环继续运行。最终我得到一个错误,因为循环没有停止并且条件仍然无效(IndexError:列表索引超出范围)
nums=[0,0,0]
i=0
j=i+1
k=len(nums)-1
while(k>j):
s=nums[i]+nums[j]+nums[k]
#greater than 0
if s>0:
#do something
else:
#do something
while(nums[k]==nums[k-1]):#<<<<<<<------ here I get IndexError: list index out of range
print("2nd wihile ",k,j)
k-=1
k-=1
while(nums[j]==nums[j+1]):
j+=1
j+=1
inner while 中的 print 语句在给出错误之前打印以下内容:
2nd wihile 2 1
2nd wihile 1 1
2nd wihile 0 1
2nd wihile -1 1
2nd wihile -2 1
IndexError: list index out of range
【问题讨论】:
标签: python python-3.x if-statement while-loop