0
ループのために初期化された変数に関する質問:Forループの初期化された変数への関数の割り当て?
セットアップ:
from urllib import urlopen
WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []
私の質問で、空のリスト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)の実際の文字列リテラル ".strip()は何でしょう?" –
申し訳ありませんが、わかりません。 –
私は単語が名前だと理解しています。すなわちforループ内でオンザフライで作成された変数である。 strip()をある領域の単語に対して呼び出すことができれば、別の領域でそれを使用できないのはなぜですか?また、私はあなたのコードをインタプリタで実行しましたが、上記と同じエラーが発生しました。実際には理解できませんでした。あらかじめ忍耐していただきありがとうございます。 –