AssertionError
assert文で指定した条件がFalseだったときに発生するエラーです。
原因
assert 条件式 という書き方で「本来ここはTrueのはず」という前提をチェックしており、その前提が崩れていることが原因です。
エラーになるコード例
def divide(a, b):
assert b != 0, 'bは0であってはいけません'
return a / b
divide(10, 0)修正版
def divide(a, b):
if b == 0:
return None
return a / b
print(divide(10, 0))よくある間違い
- 本番のバリデーション処理としてassertを使ってしまう(assertはデバッグ・前提確認用が本来の用途)
- エラーメッセージを付けず、何が原因か分かりにくいassert文を書いてしまう