2017-03-16 87 views
3

如果我有代碼...哪些是「X」的技術術語「爲X ...」

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

...你會爲x技術術語在這裏?我假設它是「迭代對象」,但也許這是一種誤解;如果這不是一個誤解,什麼是迭代對象?

+1

「循環變量」也許? –

回答

3

「循環變量」和技術一樣。

自從正式名稱以來沒有任何正式名稱,它與任務說明的左手側沒有任何區別;同樣的規則適用於「循環」變量,就像他們爲賦值目標所做的一樣。

在任何其他Python開發人員中調用它的「循環變量」會讓你明白你的觀點。


至於「什麼是迭代對象?」,你可能錯誤地認爲可迭代迭代器這是for循環所要求的,以便它能夠正常工作,這些術語的良好分解已經存在in another StackOverflow question

10

x在這方面的正式名稱爲target,通過Python的語言參考如圖所示:

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找到更多匹配循環變量

enter image description here

0

我不知道這是否適合您的一個「技術術語」的定義,但表達「循環變量」在相當多的PEP文件中使用,例如對於iteratorsgenerators,儘管基本for循環本身似乎沒有PEP。