【Python入門】Pythonのassert関数とは?使い方と活用方法を徹底解説

Python

Pythonのassert文は、デバッグ用途で使用されます。assert文は、条件がTrueの場合には何も行いませんが、条件がFalseの場合にはAssertionErrorを引き起こします。Pythonのassert文は、コード内でテストを作成することができるため、デバッグが容易になります。この記事では、初心者向けにこの関数の使い方について説明していきます。

# 例:簡単なサンプル
assert CONDITION, ERROR_MESSAGE
おまけ:try-exceptを用いてエラー判別および出力する方法
try:
    CHECK
except:
    ERROR_MESSAGE

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Pythonには、どんなデバッグ機能があるの?
・Pythonのassert関数は、どの様に使うのだろうか?

assert関数の基本構文

Pythonのassert文は以下のように使用されます。

assert {条件式}, {オプションのエラーメッセージ}

オプションのエラーメッセージは、条件式がFalseの場合に表示されます。エラーメッセージは省略可能ですが、エラーが発生した場合には役立ちます。

例:簡単なサンプル

以下は、assert文を使用した例です。

def divide(x, y):
    assert y != 0, "[ERROR] ゼロ除算が発生しました"
    return x / y

print(divide(9, 0))
Traceback (most recent call last):
  File "main.py", line 5, in <module>
    print(divide(9, 0))
  File "main.py", line 2, in divide
    assert y != 0, "[ERROR] ゼロ除算が発生しました"
AssertionError: [ERROR] ゼロ除算が発生しました

対して、asssert関数を使用しなかった場合は以下の様になります。

def divide(x, y):
    # assert y != 0, "[ERROR] ゼロ除算が発生しました"
    return x / y

print(divide(9, 0))
Traceback (most recent call last):
  File "main.py", line 5, in <module>
    print(divide(9, 0))
  File "main.py", line 3, in divide
    return x / y
ZeroDivisionError: division by zero

おまけ:try-exceptを用いてエラー判別および出力する方法

エラー判別及び出力する方法として、try-exceptを用いる場合の例を以下に示します。

def divide(x, y):
    try:
        return x / y
    except Exception as e:
        print("[ERROR] ゼロ除算が発生しました")
        print(f"[INFO] {e}")

print(divide(9, 0))
[ERROR] ゼロ除算が発生しました
[INFO] division by zero
None

まとめ

こちらの記事では、デバッグ用途としてassert関数を紹介しました。ただデバッグの方法としては、他の方法もございますのであくまでその一つとして覚えておくと便利でしょう。オプションのエラーメッセージは省略可能ですが、もしエラーが発生した場合にはあるとエラーを見つける際に役立ちます。Pythonのassert文は、プログラミング初心者にとっても理解しやすく、使いやすい機能の一つです。

関連検索ワード

How to use python “assert” function?

関連キーワード

python, 入門, 使い方, 初心者, assert, デバッグ