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()可以在一个区域被调用,为什么不能在另一个区域?另外,我通过解释器运行你的代码,它给出了与上面相同的错误 - 不是真正的理解 - 提前感谢你的耐心 - 但是你能否详细说明更多代码示例? –