静かなる名辞

pythonとプログラミングのこと

2019/03/22:TechAcademyがteratailの質問・回答を盗用していた件
2019/03/26:TechAcademy盗用事件 公式発表と深まる疑念



エラー対処法

TypeError: list indices must be integers or slices, not ***等の原因と対処法

はじめに pythonを触り始めたばかりの人は、よくこんなエラーに遭遇すると思います。 TypeError: list indices must be integers or slices, not *** ***の部分はfloatだったりlistだったりstrだったりといろいろありますが、とにかくこんなエラーです。 ま…

TypeError: '***' object is not subscriptableの対処法

はじめに Pythonを始めてからしばらく時間が経って、ある程度自力で複雑なプログラムを書くようになると、タイトルのようなエラーに遭遇することが多いと思います。 このエラーが出たときは、たいていはロジックに問題があります。一概に通用する対処法がな…

numpyやpandasでThe truth value of ... is ambiguous.のようなエラーが出たときの対処

概要 条件式を使って生成したようなboolのnumpy配列を使っていると、次のようなエラーが出ることがあります。 ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() また、pandasのSeriesやDataFrame…

【python】windowsではopenの引数にフォルダを指定するとPermissionErrorになる

最近はじめて知った仕様なのですが、windowsではタイトルの通りになります。 Linuxの場合。 $ mkdir hoge $ python >>> open("hoge") Traceback (most recent call last): File "<stdin>", line 1, in <module> IsADirectoryError: [Errno 21] Is a directory: 'hoge' 大変</module></stdin>…

multiprocessing.PoolでAttributeError: Can't get attribute '***' on <module '__main__' from '***.py'>みたいなエラー

概要 multiprocessing.Poolで並列化じゃ! と調子に乗ってコードを書いていると表題のようなエラーに遭遇することがあります。 再現するコード。poolerrortest.py from multiprocessing import Pool p = Pool(2) def f(x): print(x) p.map(f, [1,2]) # 中略 …

ImportError: No module named 'sklearn.cross_validation'の対処

概要 sklearnで書籍やネットに掲載されているコードを実行した結果、表題のようなエラーが出ることがある。 一例をあげる。 >>> from sklearn.cross_validation import cross_val_score Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportErro</module></stdin>…

ループで辞書の要素を削除しようと思ったらRuntimeError: dictionary changed size during iteration

前提 ループで条件に従って辞書の全要素を舐め、条件が真になる要素を削除したい あくまでもin-placeで処理したい(今回はdel文で書いていた) 要するにこんなコード。 d = {v:"hoge!"*v for v in range(5)} # => {0: '', 1: 'hoge!', 2: 'hoge!hoge!', 3: '…

【python】missing 1 required positional argument: 'self'などの対処法

はじめに pythonに不慣れな方は、よくタイトルのようなエラーを見かけると思います。 実際には、このエラーはTypeErrorで、全体は以下のようなものです。 TypeError: メソッドの名前 missing 1 required positional argument: 'self' では、どうしてこのエラ…

【python】ImportError: No module named '***'の対処法

はじめに ライブラリをインストールして、いざ使おうと思ったら「ImportError: No module named '***'」が出ちゃった、という経験をされる方は多いと思います。 その対処法、トラブルシューティング手順についてまとめておきます。 なお、この記事はpipでイ…

【python】クラス変数のスコープには注意が必要

pythonでクラスを書くとき、一番多用するのは(恐らく)インスタンス変数ですが、クラス変数もたまに使います。 しかし、pythonのクラス変数にはちょっと「クセ」があります。リスト内包表記と組み合わせたときに問題になることが多いようです。 問題の例 リ…

emacsでpythonを書いているとき「arithmetic error」

tabキーでインデントしようとすると表題の通りのエラーが出て、インデントできない状況になった。 ググって出てきたのはここ。Indentation not working properly in emacs for python - Stack Overflow Check the value of python-indent-offset. If it is 0…

【python】flymakeのエラー

次のようなエラーを吐かれた。 Flymake: Configuration error has occurred while running(***/flymakes ***.py).Flymake will be switched OFF 原因 色々あるらしいけど、今回は文字コード指定をタイポした瞬間エラーが出た。 # coding: UTF-9 たぶん、これ…

【python】random.shuffleについて

はじめに 標準モジュールのrandom.shuffleは直感と違う挙動をするので、メモしておきます。 参考: 9.6. random — 擬似乱数を生成する — Python 3.6.5 ドキュメント 問題のコード このようなコードです。 import random lst = list(range(10)) shuffled = ra…