9

如果我需要forPython 中的循环:

for i in range(1,42):
    print "spam"

但不要使用i任何东西,pylint 抱怨未使用的变量。我该如何处理?我知道你可以这样做:

for dummy_index in range(1,42):
    print "spam"

但这样做对我来说似乎很奇怪。有没有更好的办法?

我对 Python 很陌生,所以如果我遗漏了一些明显的东西,请原谅我。

4

5 回答 5

16
for _ in range(1,42):
    print "spam"
于 2012-04-12T10:52:24.037 回答
10

在 Python 中没有计数器变量的情况下没有“自然”的方式来循环n次,并且您不应该仅仅为了使代码分析器静音而诉诸丑陋的黑客攻击。

在你的情况下,我会建议以下之一:

  • 只需忽略 PyLint 警告(或过滤单字符变量的报告警告)
  • 将 PyLint 配置为忽略名为 的变量i,这些变量通常只在for循环中使用。
  • 使用前缀标记未使用的变量,可能使用默认值_(它比 分散注意力dummy
于 2012-04-12T14:52:14.120 回答
8

根据pylint文件

--dummy-variables-rgx=
          匹配用于虚拟变量的名称的正则表达式(即
          不曾用过)。[当前:_|虚拟]

换句话说,如果变量的名称以下划线或字母开头dummy,则pylint不会抱怨该变量未被使用:

for dummy in range(1, 42):
    print "spam"
于 2012-04-12T10:57:08.167 回答
1

通常你可以解决它,就像你的情况一样:

>>> print "spam\n"*len(range(1,42))
于 2012-04-12T10:57:15.307 回答
0

3个简单的原因

  1. 如果不在循环中使用计数器变量,就无法循环通过您的程序for
  2. 但是您可以创建一个程序,index[1]只需index[2]添加if index[1]完成即可。return index[]+1.
  3. 不幸的是,您需要创建一个额外的程序,它不如for循环高效,并且在长程序中效率不高。
于 2016-03-30T23:24:42.150 回答