1

重複の可能性:
iterator 変数なしで Python for range ループを実装することは可能ですか?

何かを何度もやりたいので書く

    for i in range(1, 10):
        print 'something'
        print 'do not use i'

したがって、PyLintを実行すると、もちろん「未使用の変数 'i'」と表示されます。では、複数回ループしたいだけのこのタイプのループを記述する正しい方法は何でしょうか。

    i = 0
    while i < 10:
        print 'test'
        i += 1

これが唯一の方法ですか?

4

3 に答える 3

4

で置き換えることもできますが、そもそもループを作成することはまったく問題ありません。他の方法で作成することは、ほとんどのPythonプログラマーにとっておそらく奇妙なことと見なされますi_

PyLintは積極的にチェックしすぎているため、無視する必要がある場合があります。コードが壊れそうかどうかを知らせるチェッカーが必要な場合は、おそらくpyflakesを検討してください。または、スタイルをチェックする場合はpep8(変数の名前付けなど)。

于 2012-11-11T12:08:35.160 に答える
2

for i in range(..)ループ(Python2で使用)xrange()は、Pythonで数値の範囲をループする正しい方法です。この場合、ピリント警告は無視する必要があります。ただし、未使用の変数の場合は、使用さ_れていないことを明確にするために名前が付けられることがよくあります。

ループする方法は他にもありますが、通常は関数呼び出しが含まれるため、効率が低下します。それに加えて、そうすることは、人々があなたのコードを読むときに見ることを期待するものではないでしょう。

于 2012-11-11T12:07:41.697 に答える
1

私が現在使用している PyLint のバージョンは、奇妙なことに、この特定の例では未使用の変数について泣くようには見えません。いずれにせよ、いくつかのオプションがあります。

  • イテレータを直接操作します。

    i = iter(range(1, 10))
    
    try:
        while i.next():
            pass
    except StopIteration:
        pass  # safely ignore
    
  • ファイルの先頭に PyLint コメントを追加して、警告を無効にします。

    # pylint: disable=X0123
    # NOTE: X0123 is just an example, I don't know the exact warning code
    
  • _未使用の変数にan を追加する可能性があります。この命名規則が尊重されているかどうかはわかりませんが、公式のユーザーマニュアルに記載されています:

    私たちのプロジェクトでは、PyLint を喜ばせるためにコードにいくつかの変更を加える必要があることを受け入れました。より多くの命名規則に固執してください (アンダースコアで終わる未使用の変数など)。

于 2012-11-11T12:26:27.540 に答える