Python:为什么这段代码会执行?

标签 python for-loop scope while-loop

我是 python 的初学者,使用 v2.7.2 这是我尝试在命令提示符下执行的内容

 p = 2
 while(p>0):
     for i in range(10):
          print i+1 , p
          p-=1

预期的输出是

1 2
2 1

但是实际输出是

1 2
2 1
3 0
4 -1
5 -2
6 -3
7 -4
8 -5
9 -6
10 -7

为什么会这样?以及如何实现预期的行为?

最佳答案

while 条件仅在 for 循环完成后再次测试。你可以这样做

p = 2
for i in range(10):
    if p <= 0:
        break
    print i+1 , p
    p-=1

关于Python:为什么这段代码会执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363875/

相关文章:

python - 你如何从 Python 中的列表中选择 "x"个唯一数字?

python - 使用 Wave 模块搜索 2GB WAV 文件中的丢失情况

c++ - 为高度迭代的 c++ 程序争吵内存

r - 找邻居的邻居

javascript - JSONP 回调和闭包/范围

c - 将变量传递给函数 : scope and when to use & and *?

jQuery,根据 var 范围不同的函数输出

python - 如何在PyQt5中捕获libpng错误错误的自适应滤波器

python - Bokeh ,套索选择表更新

c++ - Range-for 循环识别错误类型 (C2440)