困っていること
ブログ(http://sandmark.hateblo.jp/entry/2017/10/13/004250)を見ながらチャットボットを作成していたのですが、意味不明なエラーが出て困っています。
エラーの内容:
defaultdictがNemeError(詳細は下記)
意味不明な点:
・エラーの位置(line)が必ず29になる(使用している行を変更し、29行目を空行にしてもなる)
・defaultdictを使用している行をすべてコメントアウトしてもエラーが出る
エディタはvscodeを使用しています。
プログラミング初心者のため、一向に原因がわかりません。
原因がわかる方、助けてください。
発生している問題・エラーメッセージ
... File "markov.py", line 29, in <lambda> self._dic = defaultdict(lambda: defaultdict(lambda: [])) NameError: name 'defaultdict' is not defined
※29行目を空行にした場合、エラーメッセージは
...
File "markov.py", line 29, in <lambda>
NameError: name 'defaultdict' is not defined
と、下から2行目が空行になります。
該当のソースコード
python
1... 2from collections import defaultdict 3 4class Markov: 5 ENDMARK = "%END%" 6 CHAIN_MAX = 30 7 8 def __init__(self): 9 self._dic = defaultdict(lambda: defaultdict(lambda: [])) 10 self._starts = defaultdict(lambda: 0) 11 ...
※一部分のみ抜粋
試したこと
・_init_内で例外処理を試みたが、例外処理にかからずエラー
・import分含め、defaultdictが出てくる行をすべてコメントアウトしたが、エラー





