在不存储迭代次数的情况下迭代若干次
我在想,是否可以在不记录循环次数的情况下,执行一定数量的操作。
比如说,我想在控制台打印两次 "hello"
。现在我知道我可以这样做:
for i in range(2):
print "hello"
但是这样的话,i
这个变量会取到 0
和 1
的值(其实我并不需要这些值)。有没有办法在不存储这些不需要的值的情况下,达到同样的效果呢?
当然,使用一个变量并不是什么大问题 完全... 我只是好奇而已。
9 个回答
18
我觉得你在问题中提供的for循环已经很不错了,但我想提醒你,未使用的变量可以被赋值给一个叫做_
的变量,这是一种“丢弃”赋值的约定。虽然_
这个变量会保存你给它的值,但代码检查工具和其他开发者会明白你并不打算使用这个变量。所以这里有一个例子:
for _ in range(2):
print('Hello')
20
exec 'print "hello";' * 2
for _ in " "*10: print "hello"
应该可以用,但我有点不好意思自己想到这个。
更新:刚想到另一个:
56
在很多编程语言中,有个习惯用法是用一个单独的下划线 _
来表示一个不使用的变量。代码检查工具通常不会对 _
是未使用的变量发出警告,而程序员一看就知道这其实是个表示“我不在乎你放什么”的快捷方式。其实在循环的时候,总是需要一个项目变量——就像Python的哲学说的那样,“特殊情况并不足以打破规则”。