python中的斷言(assert語句)

python斷言assert語句

assert語句的格式是【assert 表達式,返回數據】,當表達式為False時則觸發AssertionError異常

try:
    n=input("請輸入一個數字:")
    assert n.isdigit(),"隻能輸入數字"
    print("你輸入的是:",n)
except Exception as ex:
    print("發現錯誤:",ex)

assert:python斷言報錯語句

assert用於判斷一個表達式,在表達式結果為 False 的時候觸發異常。若表達式結果為True,則不做任何反應。

代碼示例1:

  • In[1]中 assert 2>1 判斷為True,所以可以繼續執行下面的程序。
  • In[2]中 assert 1>2 判斷為False,所以報錯AssertionError,程序中斷。

1.設置assert報錯語句

python也支持自己設置AssertionError的提示語句。格式為:

assert + 空格 + 要判斷語句,“報錯語句”

代碼示例2:

設置AssertionError的報錯提示語句為“常數比較大小出錯”,在執行這條語句報錯時候就可以很快知道bug出在哪。

實際應用的小例子:assert判斷文件是否存在。

import os
path_txt = "test.txt"
assert os.path.exists(path_txt), "Not found text.txt"

程序路徑中沒有test.txt文件,因此會報錯:

Traceback (most recent call last):
  File "F:/PycharmProjects/test_assert.py", line 3, in <module>
    assert os.path.exists(path_txt), "Not found text.txt"
AssertionError: Not found text.txt

2.assert a,b

還有一種格式是 assert a,b

表示判斷表達式 a ,如果為 False,則輸出表達式 b 的 值。

代碼示例3:

在報錯提示 AssertionError 的後面輸出瞭 a 的值 1.2

代碼示例4:

在報錯提示 AssertionError 的後面輸出瞭 type(a) :<class ‘float’>

總結:assert語句可以幫助程序員設置報錯提醒,及時中止程序,找到bug。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: