assert文は、プログラムのデバッグやテストを行う際に使われます。プログラム中の任意の場所で assert 文を使うことによって、プログラム実行時に変数が予期しない値をもった際などにプログラムを強制終了させることができます。
基本的な使い方
assert 文の記述方法は以下の通りです。
1 |
assert 条件式, メッセージ |
assert 文の基本的な使い方は、プログラムの任意の場所に「その場所で成立していることが期待される条件式」を記述するというものです。メッセージは省略することができます。
assert 文の次のサンプルプログラムは、assert文を使って変数 x が予期しない値を持った際には AssertionError を発生させ、エラーメッセージとともにプログラムを停止します。
1 2 3 4 5 6 7 8 9 10 11 12 |
# sample.py # -*- coding: utf-8 -*- # 入力された数を出力する関数 def parrot(x): # xは0〜10であることが期待されている assert x >= 0 and x <=10, "x is not between 1 and 10" print "Input number is: " + str(x) print "Input a number(0~10)" num = input() parrot(num) |
実行結果(5を入力した場合)
1 2 3 4 |
$ python sample.py Input a number(0~10) 5 Input number is: 5 |
実行結果(12を入力した場合)
1 2 3 4 5 6 7 8 9 |
$ python sample.py Input a number(0~10) 12 Traceback (most recent call last): File "sample.py", line 12, in <module> parrot(num) File "sample.py", line 7, in parrot assert x >= 0 and x <=10, "x is not between 1 and 10" AssertionError: x is not between 1 and 10 |
プログラム実行時に assert 文で指定した条件が成立していないと、その時点で AssertionError を発生させプログラムを強制終了します。5を入力した場合はプログラムが正常に実行されたのに対して、12を入力した場合は、関数 parrot() 内で「x >=0 and x <= 10」という条件が成立しなかったことがわかります。
このように、assert 文を使うと、プログラム中で変数が予期しない値をとったときなどを早期発見することができるようになります。