0
關於在for循環初始化的變量的一個問題:將函數賦值給For循環中的初始化變量?
的設置:
from urllib import urlopen
WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []
我的問題是,從URL的話裝成空列表句話的時候,爲什麼這項工作:
for word in urlopen(WORD_URL):
WORDS.append(word.strip())
雖然這不?
for word.strip() in urlopen(WORD_URL):
WORDS.append(word)
按我的理解,一個函數可以調用在for循環初始化的變量,只要類型變量表示支持該功能。
在這種情況下,初始化變量的類型是在末尾帶有換行符的字符串,所以我認爲word.strip()會起作用。相反,我得到以下錯誤:
File "<stdin>", line 1
SyntaxError: can't assign to function call
這是爲什麼?
賦值(包含在'for'語句中)不會像那樣工作 - 您將值賦給*名稱*,而不賦給*表達式*。思想實驗:如果這工作,將urlopen(WORD_URL)中的「for」實際字符串文字「.strip()做什麼:'做什麼? –
對不起,我不明白。 –
據我瞭解,單詞是一個名字;即在for循環中動態創建的變量。如果strip()可以在一個區域被調用,爲什麼不能在另一個區域?另外,我通過解釋器運行你的代碼,它給出了與上面相同的錯誤 - 不是真正的理解 - 提前感謝你的耐心 - 但是你能否詳細說明更多代碼示例? –