摘要:寫在前面最近每日一更,我這菜雞都有點(diǎn)兒不好意思了簡單介紹簡單用法是讓我們用程序來測試這個(gè),如果相當(dāng)于,那么一個(gè)出來。
寫在前面
最近每日一更,我這菜雞都有點(diǎn)兒不好意思了
簡單介紹簡單用法是:
assert expression
讓我們用程序來測試這個(gè)expression,如果expression相當(dāng)于False,那么raise一個(gè)AssertionError出來。
即邏輯上等同于:
if not expression: raise AssertionError
簡單看看這些例子:
>>> assert True >>> assert False Traceback (most recent call last): File "", line 1, in assert False AssertionError >>> assert 1==1 >>> assert 1==0 Traceback (most recent call last): File " ", line 1, in assert 1==0 AssertionError >>> assert [1, 2] # 非空列表值得注意一下,雖說也沒個(gè)啥,哈哈 >>> assert not [1, 2] Traceback (most recent call last): File " ", line 1, in assert not [1, 2] AssertionError
assert的異常參數(shù),其實(shí)就是在斷言表達(dá)式后添加字符串信息,一般用來解釋斷言。格式如下:
assert expression [, arguments] assert 表達(dá)式 [, 參數(shù)]
舉例請(qǐng)看之后的代碼
一些重要的細(xì)節(jié)老鐵們可以試著運(yùn)行一下以下代碼段:
>>> assert None, "None若作為布爾表達(dá)式,則相當(dāng)于False" >>> assert [], "空列表若作為布爾表達(dá)式,則相當(dāng)于False" >>> assert (), "空元組若作為布爾表達(dá)式,則相當(dāng)于False" >>> assert {}, "空字典若作為布爾表達(dá)式,則相當(dāng)于False" >>> assert set(), "空集合若作為布爾表達(dá)式,則相當(dāng)于False" >>> assert "", "空字符串若作為布爾表達(dá)式,則相當(dāng)于False"
當(dāng)然還有奇葩的numpy
>>> a = np.array([1, 2]) >>> assert a Traceback (most recent call last): File "", line 1, in assert aa ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
是的,你沒看錯(cuò),哪里有numpy,哪里就有Use a.any() or a.all()......
最后,再試一試這倆吧:
>>> assert np.array([]) >>> assert np.array([[], []])
是的,只要是空的,甭管是幾維的,都相當(dāng)于False
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/45259.html
摘要:方法一直持續(xù)到參數(shù)序列中最短的可迭代對(duì)象耗盡,然后它拋出。如需轉(zhuǎn)換為列表,需使用內(nèi)置函數(shù)轉(zhuǎn)換。這里簡單列一下函數(shù)的例子打包為元組的列表,元素個(gè)數(shù)與最短的列表一致也可以轉(zhuǎn)換為字典 zip()函數(shù),其實(shí)看help(zip)即可 | Return a zip object whose .__next__() method returns a tuple where| the i-th e...
摘要:為何不盡如人意中的斷言用起來非常簡單,你可以在后面跟上任意判斷條件,如果斷言失敗則會(huì)拋出異常。中的斷言可讀性很好,而且智能提示也很方便你通過輕松完成各種斷言語句。而且它的斷言信息簡潔明了,不多不少。 Python Assert 為何不盡如人意 Python中的斷言用起來非常簡單,你可以在assert后面跟上任意判斷條件,如果斷言失敗則會(huì)拋出異常。 >>> assert 1 + 1 ==...
摘要:但是在調(diào)試之后,我們還需要手動(dòng)刪除語句,比較麻煩。關(guān)閉后,語句就不再生效。的好處有很多,一個(gè)是可以制定輸出特定級(jí)別的信息。我們可以用對(duì)進(jìn)行簡單的配置。小于該的都會(huì)被忽略。但是在處理很長的代碼的時(shí)候,顯得效率低下。 我們?cè)趯懘a的時(shí)候,往往會(huì)有一大堆錯(cuò)誤。我們?cè)撊绾握{(diào)試呢? 用print語句打印 我們可以用print語句打印我們想要的內(nèi)容,然后在輸出中查看。 print hah 但是在調(diào)...
摘要:關(guān)鍵字拼寫錯(cuò)誤時(shí)會(huì)提示語法錯(cuò)誤,而變量名函數(shù)名拼寫錯(cuò)誤會(huì)在運(yùn)行時(shí)給出的錯(cuò)誤提示腳本程序不符合的語法規(guī)范例如如少了括號(hào),冒號(hào)等符號(hào),以及表達(dá)式書寫錯(cuò)誤等。異常的處理異常是程序在運(yùn)行過程中引發(fā)的錯(cuò)誤。 異常是Python程序在運(yùn)行過程中引發(fā)的錯(cuò)誤,如果程序中引發(fā)了未進(jìn)行處理的異常,程序就會(huì)由于異常而終止運(yùn)行,只有為程序添加異常處理,才能使程序更健壯。 Python對(duì)異常的處理,有它自己的語...
摘要:函數(shù)體由表達(dá)式組成。我們說頭部控制語句組。于是,函數(shù)體內(nèi)的賦值語句不會(huì)影響全局幀。包含了多種假值,包括和布爾值。布爾值表示了邏輯表達(dá)式中的真值。執(zhí)行測試以及返回布爾值的函數(shù)通常以開頭,并不帶下劃線例如等等。返回值之后會(huì)和預(yù)期結(jié)果進(jìn)行比對(duì)。 1.5 控制 來源:1.5 Control 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 我們現(xiàn)在可以定義的函數(shù)能力有限,因?yàn)槲覀冞€不知...
閱讀 891·2023-04-25 19:17
閱讀 2195·2021-09-10 11:26
閱讀 1908·2019-08-30 15:54
閱讀 3429·2019-08-30 15:53
閱讀 2688·2019-08-30 11:20
閱讀 3404·2019-08-29 15:12
閱讀 1238·2019-08-29 13:16
閱讀 2395·2019-08-26 12:19