在Python中使用“assert”有什麼用?
我一直在閱讀一些原始碼,在一些地方我已經看到了
assert
的用法。
這究竟是什麼意思? 它的用途是什麼?
#1樓
斷言語句有兩種形式。
簡單的形式,
assert <expression>
,相當於
if __debug__: if not <expression>: raise AssertionError
擴充套件形式
assert <expression1>, <expression2>
等同於
if __debug__: if not <expression1>: raise AssertionError, <expression2>
#2樓
這是一個簡單的例子,將其儲存在檔案中(假設為b.py)
def chkassert(num): assert type(num) == int chkassert('a')
和
$python b.py
時的結果
Traceback (most recent call last): File "b.py", line 5, in <module> chkassert('a') File "b.py", line 2, in chkassert assert type(num) == intAssertionError
#3樓
斷言是一種系統的方法,用於檢查程式的內部狀態是否與程式設計師預期的一樣,目的是捕獲錯誤。 請參閱下面的示例。
>>> number = input('Enter a positive number:') Enter a positive number:-1>>> assert (number > 0), 'Only positive numbers are allowed!'Traceback (most recent call last): File "<stdin>", line 1, in <module>AssertionError: Only positive numbers are allowed!>>>
#4樓
如果assert之後的語句為true,則程式繼續,但如果assert之後的語句為false,則程式會給出錯誤。 就那麼簡單。
例如:
assert 1>0 #normal executionassert 0>1 #Traceback (most recent call last): #File "<pyshell#11>", line 1, in <module> #assert 0>1 #AssertionError
#5樓
format:assert Expression [,arguments]當assert遇到一個語句時,Python會計算表示式。如果該語句不為true,則引發異常(assertionError)。 如果斷言失敗,Python使用ArgumentExpression作為AssertionError的引數。 可以使用try-except語句像任何其他異常一樣捕獲和處理AssertionError異常,但如果不處理,它們將終止程式併產生回溯。 例:
def KelvinToFahrenheit(Temperature): assert (Temperature >= 0),"Colder than absolute zero!" return ((Temperature-273)*1.8)+32 print KelvinToFahrenheit(273) print int(KelvinToFahrenheit(505.78)) print KelvinToFahrenheit(-5)
執行上面的程式碼時,會產生以下結果:
32.0 451 Traceback (most recent call last): File "test.py", line 9, in <module> print KelvinToFahrenheit(-5) File "test.py", line 4, in KelvinToFahrenheit assert (Temperature >= 0),"Colder than absolute zero!" AssertionError: Colder than absolute zero!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957771/viewspace-2671224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python 中assert的使用Python
- 列表在python有什麼用Python
- Python是什麼意思?Python有什麼用?Python
- python中print()有什麼用?常用引數有哪些?Python
- Python client有什麼用Pythonclient
- 在Python中,val、exec和 compile 有什麼區別?PythonCompile
- python中Write和Writelines有什麼不同?如何使用?Python
- Python為什麼這麼火?學習python有什麼用?Python
- Python爬蟲可以幹什麼?Python爬蟲有什麼用?Python爬蟲
- python中isinstance()和type()有什麼區別?如何使用?Python
- 學Python培訓有什麼用Python
- volatile關鍵字在Android中到底有什麼用?Android
- python雙下劃線有什麼用Python
- 什麼是python?python有什麼用途?Python
- Python專案實踐有什麼好處?python用來做什麼Python
- python中Matplotlib是什麼?怎麼用?Python
- Python的優點是什麼?誰在使用Python?Python
- vue中為什麼使用vuex?應用場景有哪些?Vue
- Java 中的Exception 有什麼用?JavaException
- Linux中man命令有什麼用?Linux
- Linux中虛擬化是什麼?有什麼用?Linux
- Python中的arange是什麼?和range有什麼不同?Python
- python中,"_"和"__"的作用有什麼不同?Python
- python語言有什麼特點?python應用領域有哪些?Python
- 學習Python有什麼用?發展如何?Python
- Python中\t代表什麼?如何使用?Python
- Python range()函式有什麼作用?如何使用?Python函式
- Python中模組是什麼?Python有哪些模組?Python
- mybatis 中mapper 的namespace有什麼用?MyBatisAPPnamespace
- 學Python程式設計有什麼用?Python基礎教程!Python程式設計
- 在python中什麼是私有變數域Python變數
- python中物件導向有什麼特點Python物件
- 好文推薦 | volatile關鍵字在Android中到底有什麼用?Android
- 在實際應用中,儲存虛擬化有什麼功能呢?
- Python中異常是什麼意思?與錯誤有什麼區別?Python
- CRM什麼意思?有什麼用?
- python斷言方法assertPython
- Python中tuple和list有什麼區別?Python入門!Python