Jos*_*hna 5 python scope for-loop while-loop
我是python的初学者,使用v2.7.2这是我试图在命令提示符下执行的
p = 2
while(p>0):
for i in range(10):
print i+1 , p
p-=1
Run Code Online (Sandbox Code Playgroud)
该预期产量
1 2
2 1
Run Code Online (Sandbox Code Playgroud)
但实际输出是
1 2
2 1
3 0
4 -1
5 -2
6 -3
7 -4
8 -5
9 -6
10 -7
Run Code Online (Sandbox Code Playgroud)
为什么会这样?以及我如何实现预期的行为?
while循环条件仅在for循环结束后再次测试.你可以这样做
p = 2
for i in range(10):
if p <= 0:
break
print i+1 , p
p-=1
Run Code Online (Sandbox Code Playgroud)
1 2
2 1
3 0
4 -1
5 -2
6 -3
7 -4
8 -5
9 -6
10 -7
Run Code Online (Sandbox Code Playgroud)
你的问题为什么它运行.你最外面的条件是一个while循环,这在第一次执行时是正确的,但是它会直接运行到嵌套的for循环中.当发生这种情况时while,在for循环完成第一次执行之前不会检查(这就是为什么p = -7).
你想要的是这个:
p = 2
for i in range(10):
if p <= 0:
break
print i+1 , p
p-=1
Run Code Online (Sandbox Code Playgroud)
给出输出:
1 2
2 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |