python: エラー対応① 単純なミス(invalid syntax, import error, name error)
エラー対応でよくあるもの、というより実際に自分でよく引き起こしてしまうものをまとめます。今回は「ゼロから作るDeep Learning3」(著:斎藤 康毅さん)のコード実行時の例をまとめてみました。
エラーを一つずつクリアする
エラーが起きた時、あー、、って気持ちになりますが、一つずつクリアし、最後に実行できると気持ちいいです。色々調べないと解除できないものもありますが、大抵は自分の入力ミスなどが多いかなと思います。実際、コードを入力しているときは、完璧と思っているのですけどね。スペルミスなど調子に乗ってスピードが上がってくると多いです。
僕の恥ではあるのですが、今回はエラーの中の簡単なミス特集です。
今回扱っているコードは、「ゼロから作るDeep Learning3」(著:斎藤 康毅さん)のコードを入力し実行した際のエラーを使っています、
エラー1
invalid syntaxです。構文エラーってなっています。cuda.pyのline61行目ということなのですが、よくみると
"return" であるはずが、"retrun"。。
jupyter labで書いているので、returnであれば自動的に下記のように緑色で記載されます。でもスペルをミスれば緑色になりません。
スペルミスはなくしたい。。
といいつつ今回はスペルミスのオンパレードを公開です。
エラー2
スペルではないのですが、僕の薬指がよく動かなかったために起きたミスです。
引数のところ、よく見ると、、xの後 正解は ( , )であるはずが( . )とピリオドになっています。
エラー3
これもスペルミスです。
誤)asesrt
正)assert
こちらもちゃんと打てば緑色で表示してくれます。頭ではわかっているけど脳の指示通り指が動きません。。
エラー4
これはImportError。関数がインポートできないと言われてしまっているのですが、こちらも実際のところスペルミスです。
「as_variable」という関数をインポートするはずが、「as_varialbe」となっています。
意識して間違ったコード打とうとすると打ちにくいと思うのですが、無意識の指の動きがなせる技です。。。
エラー5
ネームエラーとなっていますが、646行目、Funcitionになってます。(本来はFunction)
tionって打ちたい時にその前に、先取りしてiを打ち込んじゃうことよくあります。。
エラー6
見づらいですが、これは構文エラー。エラー部分、キーと値になっているのに()で囲んでタプルになっています。{}で辞書が正解です。
エラー7
これもよくやります。関数やクラス、forやif文でもないのに勝手に(:)が入っています。指が勝手に動くのです。
エラー8
これはrdivってないよって言われているのですが、その通り!rdiv関数作っていませんでした。。
今回は単純なエラーの数々です。。エラーが起きると大体自分の入力ミスを疑う今日この頃です。
ただ、エラークリアしコードが正常に実行されると気持ち良いです!