目前,如果我想通过 1
重复 n
,我可能会使用以下方法:
for _ in range(1, n+1):
print(_)
有没有更简洁的方法来完成此操作而无需参考 n + 1
?
如果我想迭代通常从1开始的范围(这并不罕见),我必须将增加指定两次,这似乎很奇怪:
1
位于范围的开头。+ 1
位于范围的末尾。答案 0 :(得分:2)
range(1, n+1)
不被视为重复,但我可以看到,如果您要将1
更改为其他数字,这可能会变得很麻烦。
这将使用生成器删除重复:
for _ in (number+1 for number in range(5)):
print(_)
答案 1 :(得分:2)
不是一般答案,但对于非常小范围(例如,最多五个),我发现在字面拼写它们更具可读性:
for _ in [1,2,3]:
print _
即使它从零开始也是如此。
答案 2 :(得分:1)
range(1, n+1)
是常见的方法,但如果你不喜欢它,你可以创建你的功能:
def numbers(first_number, last_number, step=1):
return range(first_number, last_number+1, step)
for _ in numbers(1, 5):
print(_)
答案 3 :(得分:1)
来自文档:
range([start], stop[, step])
开始默认为0,步骤可以是任何你想要的,除了0和stop是你的上限,它不是迭代次数。所以声明n是你的上限是正确的,你不必添加1。
答案 4 :(得分:0)
for i in range(n):
print(i+1)
这将输出:
1
2
...
n