ベスパリブ

ベスパもってないです。バイク買いました。

Python

小数点以下の不要な0を除去したい(Python)

何がやりたいかと端的に言うと、 30.100 => 30.1 30.000 => 30 のようにしたい。 Decimalモジュールを使う 小数点といえばDecimalなので、Decimalモジュールを探したらそれっぽいDecimal.normalizeがありました。 数値を正規化 (normalize) して、右端に連続…

ABC 143: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 143: D - Triangles 公式解説PDF:https://img.atcoder.jp/abc143/editorial.pdf 公式解説動画:https://youtu.be/3U_N7zelnMM?t=2983 解説 解説動画まんまです。 二分探索問題です。 問題の条件の、 a < b + c b < c + a c …

ABC 142: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 142: D - Disjoint Set of Common Divisors 公式解説PDF:https://img.atcoder.jp/abc142/editorial.pdf 公式解説動画:AtCoder Beginner Contest 142 - YouTube 解説 要約すると、(gcd(A, B)を素因数分解したときの素因数…

AttributeError: module 'pip' has no attribute 'get_installed_distributions' のエラー対応

Google Colabでインストールされているパッケージを確認しようとしました。以下はPythonのコードです。 installed_packages = pip.get_installed_distributions() すると以下のようなエラーが発生しました。 AttributeError: module 'pip' has no attribute …

ABC 115: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 115: D - Christmas 公式解説PDF:https://img.atcoder.jp/abc115/editorial.pdf 公式解説動画:なし 有志解説動画:【競技プログラミング】AtCoder Beginner Contest 115 D問題をJuliaで解く - YouTube 解説 考察問題であり…

「テスト駆動Python」写経 CHAPTER1

www.amazon.co.jp 1 はじめてのpytest pytestを使ったテスト駆動開発についての本です。 pytestを実行する test_one.py def test_passing(): assert (1, 2, 3) == (1, 2, 3) テストを実行します。 $ pytest test_one.py ===================================…

よく使うcondaコマンド

condaコマンド 仮想環境の作成 # conda create -n [仮想環境名] > conda create -n py3x # pythonのバージョンを指定したい場合は conda create -n [仮想環境名] python=3.6 など > conda create -n py36 python=3.6 仮想環境の確認 > conda info -e 仮想環…

Python3.7のeval()関数は長すぎる文字列を処理させようとするとエラーを吐かずに落ちることがある

TL;DR Python3.7系だと、エラーを吐かずに終了することがあります。 現象 a = "1*"*100000 ans = eval(a[:-1]) print(ans) print("end.") 自宅のPC(Windows10, 64bit, Python3.6.5)でこれを実行してみると、 >python hoge.py Traceback (most recent call la…

pywintypes.com_error: (-2147352561, 'パラメーターはオプションではありません。', None, None) エラーの意味

File "test/test_main.py", line 225, in hoge wp = wps.AddByPoint() File "C:\Users\XXXX\AppData\Local\Temp\gen_py\3.7\D98A091D-3A0F-4C3E-B36E-61F62068D488x0x1x0.py", line 125299, in AddByPoint , Construction) pywintypes.com_error: (-21473525…

Python: 2進数の文字列を、float(64bitの倍精度浮動小数点数)型の数値に変換する

bin_to_double() 関数 2進数の文字列を、float(64bitの倍精度浮動小数点数)型の数値に変換する関数 double_to_bin() 関数 上の逆関数(float型の数値を、2進数の文字列に変換する関数) 詳細は以下のGistのコードを参照してください。 gist.github.com 参考 …

Python: 切り捨てはmath.floor()より//演算子を使ったほうが良いかも

環境はPython3.6.5です。 まずは以下の計算結果を見てください。 gist.github.com なぜ? float型において、有効数字が16桁以上の値を表現しようとすると誤差が生じてしまう可能性があるからです。 N//3 のような整数同士の切り捨て除算は内部処理的にint型…

Pythonでいもす法

いもす法とは いもす法(imos法)とは、長さNの1次元配列において、「ある連続する区間に、ある数vを足す」という操作をK回繰り返した結果を、計算量O(N+K)で高速に構築できる方法。 たとえば、「ある連続する区間に、1を足す」という操作を4回したい次の図の…

condaのPackagesNotFoundError

condaで何かをインストールするときにPackagesNotFoundErrorが出るときの主な原因は、 (1) タイプミス (2) 探すリポジトリになかった (2)の場合は探すリポジトリを追加させます。 # condaが探すリポジトリ先の確認 $conda config --get channels # conda-for…

リストの要素がクラスオブジェクトの場合のソート(Python)

リストの要素がクラスオブジェクトの場合に、そのオブジェクトのメンバ変数に対してソートをしたい。 クラスに対するソート(と言ったら語弊があるけど)。 やりたいこと class Person(): def __init__(self, _id, height, name): self._id = _id self._heig…

cpythonリポジトリのcソースの場所

cpython/Python/ に大抵の.cソースが置いてあります。 ちなみに cpython/Python/bltinmodule.c が組み込み関数のファイル cpython/bltinmodule.c at master · python/cpython · GitHub

Anacondaで仮想環境を構築してDjango環境を作る(Windows)

AnacondaはPythonの実行環境を複数構築することができます。 コマンドプロンプトにAnacondaのパスが通っているなら、以下のコマンドで環境を作成できます。 # conda create -n [環境名] # pythonのバージョンを指定したい場合は conda create -n [環境名] py…

state machineの話(あるいはPython3での実装)

Statechart このような記事を見つけました。 ステートマシン(state machine)実装のための本があることを初めて知りました。 ここで提案されている手法は、[* 状態変数を使うかわりに現在の状態を示す関数を使う]というものである。たとえば「あ」という状…

Pythonでclassの中にclassを作成する

class TemperatureHumidity: class Temperature: def __init__(self): self.value = None self.count = 0 def print(self): print("Temperature:", self.value, self.count) class Humidity: def __init__(self): self.value = None self.count = 0 def prin…

pythonでfloat()やint()で変換可能かどうかを調べる関数

標準では提供されてなかったようなので、自作helper関数として作ります。 与えられた文字列が小数 or 整数かを正規表現で調べる関数を作ったのですが、作った後でテストしているときに、そんなことしなくても例外をキャッチすればいいだけだと気づきました。…