2017-03-16 4 views
3

私は、コードを持っていた場合... 中の「x」のための技術的な用語とは何である「Xのための...」

list = ['Clemont', 'Albert', 'Shiro'] 
for x in range(len(list)): 
    print(x) 

... xのための技術的な用語はここで何でしょうか?私はそれが "反復オブジェクト"だと仮定していますが、多分それは誤解です。それが誤解ではないなら、反復オブジェクトは何ですか?

+1

「ループ変数」は多分ですか? –

答えて

3

「ループ変数」は技術的なものです。

公式には割り当てシナリオの左手側と変わらないので正式な名前はありません。同じルールが割り当てターゲットの場合と同じように "ループ"変数に適用されます。

他のPython開発者の間で "ループ変数"を呼び出すと、あなたの意見が分かります。


については、「反復オブジェクトは何ですか?」の場合は、iterableまたはiteratorと間違っている可能性があります。これはforループが動作するために必要なものです。これらの用語の解説はすでにin another StackOverflow questionです。

10

Pythonの言語リファレンスによって示されるように、そのコンテキストでxの正式名称は、target次のとおりです。

for_stmt ::= "for" target_list "in" expression_list ":" suite 
       ["else" ":" suite] 

... target_list(およびtarget)で次のように定義される。あなたの場合は

target_list  ::= target ("," target)* [","] 
target   ::= identifier 
        | "(" target_list ")" 
        | "[" target_list "]" 
        | attributeref 
        | subscription 
        | slicing 
        | "*" target 

ターゲットが実際に受け入れられるか定義されるかを知りたい場合は、ドキュメンテーションを熟読するように奨励してください。ほとんどの標準的な意味では、ターゲットを表す変数名(この場合はx)のような単純な識別子を使用しています。

+1

しかし、「target」という用語は、[任意の古い割り当て](https://docs.python.org/3.3/reference/simple_stmts.html#assignment-statements)のLHSに使用されています。これは 'for'ループ。 –

+0

@tobias_k:そうです。何にも特有のものではありません。それは*文法の文脈から、特別な名前がないことを意味します。 – Makoto

+1

私は同意しません。これは、両方で同じ構文を使用できることを意味します。あなたが話していることを理解できるように他の人と話し合うときに使用できる、より具体的な用語があるかもしれません。 –

2

それのための「公式」という用語があるかどうかはわからないが、私はそれが反復変数またはループ変数と呼ばれて見てきました。これはPythonに特有のものではなく、多くの異なる言語で共通しています。

Google Ngramsループ変数でさらに多くのヒットが見つかりました。例えば、これは「専門用語」のあなたの定義に合ったが、表現「ループ変数は」かなりの数のPEPドキュメントで使用されている場合

enter image description here

0

私はわかりませんiteratorsおよびgeneratorsについては、ループ自体に基本的なPEPは存在しないように思われるが、

関連する問題