Python?assert斷言聲明,遇到錯(cuò)誤則立即返回問題
assert斷言聲明,遇到錯(cuò)誤則立即返回
在使用python語言開發(fā)深度學(xué)習(xí)模型時(shí),經(jīng)常會(huì)遇到模型運(yùn)行結(jié)束時(shí)才會(huì)發(fā)現(xiàn)的崩潰狀態(tài),或者得到的結(jié)果不是預(yù)想的那樣。
這就需要在模型中善于使用assert語句,來判斷某些變量的類型或者shape等是否滿足要求。
用法為 :
assert expression(你想判斷的內(nèi)容)
# 等價(jià)于 if not expression: ? ? raise AssertionError
例如:
在邏輯回歸中,z = W的轉(zhuǎn)置*X,樣本X含有五個(gè)特征,則我們?cè)谠O(shè)置W時(shí)。要一直保證其shape為[5,1]
>>> import numpy as np >>> w = np.zeros((5,1)) >>> w array([[0.], ? ? ? ?[0.], ? ? ? ?[0.], ? ? ? ?[0.], ? ? ? ?[0.]]) >>> assert(w.shape == (5,1)) >>> assert(w.shape == (2,1)) Traceback (most recent call last): ? File "<stdin>", line 1, in <module> AssertionError
assert斷言函數(shù)
說明一下代碼適用于python2,不完全適用與py3
使用assert斷言是學(xué)習(xí)python一個(gè)非常好的習(xí)慣,python assert 斷言句語格式及用法很簡(jiǎn)單。在沒完善一個(gè)程序之前,我們不知道程序在哪里會(huì)出錯(cuò),與其讓它在運(yùn)行最崩潰,不如在出現(xiàn)錯(cuò)誤條件時(shí)就崩潰,這時(shí)候就需要assert斷言的幫助。本文主要是講assert斷言的基礎(chǔ)知識(shí)。
python assert斷言的作用
python assert斷言是聲明其布爾值必須為真的判定,如果發(fā)生異常就說明表達(dá)示為假??梢岳斫鈇ssert斷言語句為raise-if-not,用來測(cè)試表示式,其返回值為假,就會(huì)觸發(fā)異常。
assert斷言語句的語法格式
- assert python 怎么用?
- expression assert 表達(dá)式
assert語句用來聲明某個(gè)條件是真的。
如果你非常確信某個(gè)你使用的列表中至少有一個(gè)元素,而你想要檢驗(yàn)這一點(diǎn),并且在它非真的時(shí)候引發(fā)一個(gè)錯(cuò)誤,那么assert語句是應(yīng)用在這種情形下的理想語句。
當(dāng)assert語句失敗的時(shí)候,會(huì)引發(fā)一AssertionError。
下面做一些assert用法的語句供參考
>>assert 1==1 >> assert 1 == 2 Traceback (most recent call last): ? File "<stdin>", line 1, in <module> AssertionError >>assert 2+2==2*2 >>assert len(['my boy',12])<10 >>assert range(4)==[0,1,2,3] >>> mylist = ['item'] >>assert len(mylist) >= 1 >>mylist.pop() 'item' >>assert len(mylist) >= 1 Traceback (most recent call last): ? File "<stdin>", line 1, in <module> AssertionError
如何為assert斷言語句添加異常參數(shù)
assert的異常參數(shù),其實(shí)就是在斷言表達(dá)式后添加字符串信息,用來解釋斷言并更好的知道是哪里出了問題。
格式如下:
assert expression [, arguments]
assert 表達(dá)式 [, 參數(shù)]
自定異常
class ShortInputException(Exception): '''自定義的異常類''' def __init__(self, length, atleast): #super().__init__() self.length = length self.atleast = atleast def main(): try: s = input('請(qǐng)輸入 --> ') if len(s) < 3: # raise引發(fā)一個(gè)你定義的異常 raise ShortInputException(len(s), 3) except ShortInputException as result:#x這個(gè)變量被綁定到了錯(cuò)誤的實(shí)例 print('ShortInputException: 輸入的長(zhǎng)度是 %d,長(zhǎng)度至少應(yīng)是 %d'% (result.length, result.atleast)) else: print('沒有異常發(fā)生.') main()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試的實(shí)現(xiàn)
這篇文章主要介紹了使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11python創(chuàng)建文件時(shí)去掉非法字符的方法
今天小編就為大家分享一篇python創(chuàng)建文件時(shí)去掉非法字符的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)及Python實(shí)現(xiàn)詳解
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)及Python實(shí)現(xiàn)詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12