NameError、意訳すると「その名前、まだ定義されてないよ」です。
results = {'win':'勝ち', 'lose':'負け', 'draw':'あいこ'}
print(results[win])
NameError: name 'win' is not defined
違いは '' があるかないか。
results['win'] → 'win' という文字列(キー)
results[win] → win という変数
''が無いと、Pythonは win を変数として探します。
でも win には何も入れていないので「そんな名前は知らない」となるわけです。
変数に値が入っていないと、プログラムは動きません。
空のバケツでは実行できない、ということですね。
win = 'lose'
results = {'win':'勝ち', 'lose':'負け', 'draw':'あいこ'}
print(results[win])
→ 負け
先に値を入れれば動きます。
(ただ、中身がloseなのに変数名がwinなのは紛らわしいので、resultなどにするのがおすすめです)
显示更多