エラーが起きた時に指定のメッセージを出したい


概要


assert 条件式, 条件式を満たしていなければ表示される文字列

条件式を満たしていない場合にシェルのエラーメッセージの中に指定の文字列が出てくる


aa = 1
assert aa == 1,'1ちゃうで!'
assert aa == 2,'2ちゃうで!'

aaに1を入れる
aaが1ではないなら「1ちゃうで!」とエラーメッセージを出す
aaが2ではないなら「2ちゃうで!」とエラーメッセージを出す

出力


print出力ではないが、エラーメッセージは

Traceback (most recent call last):
  File "/Users/shigetakatani/Documents/python/practice/assert01.py", line 3, in 
    assert aa == 2,'2ちゃうで!'
AssertionError: 2ちゃうで!

と出る。

説明


エラーが出た時に指定のメッセージを出してエラーするようになる。構文は

assert 条件文,エラー時に出すメッセージ

条件分はTrueなら何も起きず、Falseならエラーメッセージを出す。
エラーが出た後は通常と同じように、そこでプログラムは止まってその先へは進まない。

間違えやすい問題


なし

概要


ある文字や数字がリストの中にあるかどうか調べる


def func():
    aList = [1,2,3]
    assert 4 in aList,'4がありません'
    return aList

func()

関数funcを定義
aListに1,2,3を入れる
aListの中に4があれば何もなし、なければ「4がありません」というエラーメッセージを出す
aListの結果を関数の戻り値にする

関数funcを実行

出力


print出力ではないが、エラーメッセージは

Traceback (most recent call last):
  File "C:\Users\Valley\Documents\MyProject_XP\python\practice\assert02.py", line 6, in 
    func()
  File "C:\Users\Valley\Documents\MyProject_XP\python\practice\assert02.py", line 3, in func
    assert 4 in aList,'4がありません'
AssertionError: 4がありません

と出る。

説明


上と同様

assert 条件文 メッセージ

条件文「4 in aList」はFalseになるので(aListに4は含まれていないので)
エラーメッセージ「4がありません」と出る

間違えやすい問題


なし