如果我输入这样的内容,我会得到这些值:
print range(1,10)
[1,2,3,4,5,6,7,8,9]
但是如果我想在 for 循环中使用相同的值,那么它将从 0 开始,这就是我的意思的一个例子:
for r in range(1,10):
for c in range(r):
print c,
print ""
输出是这样的:
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8
这里为什么是0?它不应该从 1 开始到 9 结束吗?
请您参考如下方法:
您正在循环中创建第二个 range() 对象。默认起始值为 0。
您在 range(r) 上创建一个循环的每次迭代,意味着 范围从 0 到 r,不包括,以产生输出数字.对于 range(1),这意味着您得到一个列表,其中只有 [0],对于 range(1),您得到 [0, 1] 等
如果你想产生从 1 到 r inclusive` 的范围,只需在你实际打印的数字上加 1:
for r in range(1,10):
for c in range(r):
print c + 1,
print ""
或范围从 1 到 r + 1:
for r in range(1,10):
for c in range(1, r + 1):
print c,
print ""
两者都会产生您预期的输出:
>>> for r in range(1,10):
... for c in range(r):
... print c + 1,
... print ""
...
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
>>> for r in range(1,10):
... for c in range(1, r + 1):
... print c,
... print ""
...
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
