关于在for循环中初始化的变量的问题:
设置:
from urllib import urlopen
WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []
我的问题是,当将网址中的单词加载到空列表WORDS中时,为什么会这样做:
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
这是为什么?
答案 0 :(得分:0)
我现在明白了;我试图做的不是因为:
for word in urlopen(WORD_URL):
是一个设计用于迭代某个对象的表达式,因此在新创建的变量字上调用strip()方法在这一点上没有意义。
显而易见的答案是简单地在for循环块内部的变量字上调用strip()方法。
@Zero Piraeus感谢您的耐心。