我是 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
为什么会这样?以及如何实现预期的行为?
我是 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 :-)
你可以试试这个:
p = 2
for i in range(1, p+1):
print i,
print
for i in range(p, 1, -1):
print i,
这将打印所需的输出。不仅对于 2,而且如果您更改 p 的值,它将打印相同的输出。
range 函数可以接受三个参数,即 start、stop 和 step。如果给定 range(x),它将以 start 为 0,step 为 1 并上升到 x(x 不包括在内)。如果你给定 range(y, x),它将从 y 开始并上升到 x,默认步长值为 1。
在示例中,我使用了 range(p, 0, -1) ,它将起点作为 'p',步长为 -1,并递减 p 的值直到 1 并退出。要了解有关范围的更多信息,请单击此处。