int()でstring型をint型に変換したときの例外が、TypeErrorになるケース、ValueErrorになるケースを忘れがちなので、メモとして残します。
正常動作
int("100")
# 以下もオーバーロードなので正常動作
int(100)
int(1.6) # 1 になる
int(True) # 1 になる
TypeError
- 型が違う
- 引数の数がオーバー
int(["100", "101"])
int(None)
int("100", 10, "100")
ValueError
- 型は合っているが、変換できない
int("")
int("abc")
以下を参考にしました。
https://stackoverflow.com/questions/48343387/valueerror-and-typeerror-in-python