if i need a for loop in python
for i in range(1,42):
print "spam"
but don't use the "i" for anything pylint complains about the unused variable. How should i handle this? I know you can do this:
for dummy_index in range(1,42):
print "spam"
but doing this seems quite strange to me, is there a better way?
I'm quite new at python so forgive me if I'm missing something obvious.
There is no "natural" way to loop n times without a counter variable in Python, and you should not resort to ugly hacks just to silence code analyzers.
In your case I would suggest one of the following:
- Just ignore the PyLint warning (or filter reported warnings for one-character variables)
- Configure PyLint to ignore variables named
i
, that are usually only used in for
loops anyway.
- Mark unused variables using a prefix, probably using the default
_
(it's less distracting than dummy
)
for _ in range(1,42):
print "spam"
According to pylint
documentation:
--dummy-variables-rgx=
A regular expression matching names used for dummy variables (i.e.
not used). [current: _|dummy]
In other words, if the name of the variable starts with an underscore, or with the letters dummy
, pylint
would not complain about the variable being unused:
for dummy in range(1, 42):
print "spam"
Usually you can work around it, just like this in your case:
>>> print "spam\n"*len(range(1,42))