gpt4 book ai didi

python - range() 函数给我带来了麻烦

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:23 25 4
gpt4 key购买 nike

如果我输入这样的内容,我会得到这些值:

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

关于python - range() 函数给我带来了麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com