在不存储迭代次数的情况下迭代若干次

60 投票
9 回答
180441 浏览
提问于 2025-04-16 03:58

我在想,是否可以在不记录循环次数的情况下,执行一定数量的操作。

比如说,我想在控制台打印两次 "hello"。现在我知道我可以这样做:

for i in range(2):
    print "hello"

但是这样的话,i 这个变量会取到 01 的值(其实我并不需要这些值)。有没有办法在不存储这些不需要的值的情况下,达到同样的效果呢?

当然,使用一个变量并不是什么大问题 完全... 我只是好奇而已。

9 个回答

18

我觉得你在问题中提供的for循环已经很不错了,但我想提醒你,未使用的变量可以被赋值给一个叫做_的变量,这是一种“丢弃”赋值的约定。虽然_这个变量会保存你给它的值,但代码检查工具和其他开发者会明白你并不打算使用这个变量。所以这里有一个例子:

for _ in range(2):
    print('Hello')
20
exec 'print "hello";' * 2
for _ in " "*10: print "hello"

应该可以用,但我有点不好意思自己想到这个。

更新:刚想到另一个:

56

在很多编程语言中,有个习惯用法是用一个单独的下划线 _ 来表示一个不使用的变量。代码检查工具通常不会对 _ 是未使用的变量发出警告,而程序员一看就知道这其实是个表示“我不在乎你放什么”的快捷方式。其实在循环的时候,总是需要一个项目变量——就像Python的哲学说的那样,“特殊情况并不足以打破规则”。

撰写回答