二、生成器
三、迭代器
四、裝飾器(函式式程式設計)
2.裝飾器
異常名稱
注釋asserterror
斷言語句失敗丟擲
attributeerror
嘗試訪問未知的物件屬性
indexerror
索引超出序列的範圍
keyerror
字典中查詢乙個不存在的關鍵字
keyboardinterrupt
使用者輸入中斷鍵(ctrl+c)
memoryerror
記憶體溢位(可通過刪除物件釋放記憶體)
nameerror
嘗試訪問乙個不存在的變數
oserror
作業系統產生的異常(例如開啟乙個不存在的檔案)
overflowerror
數值運算超出最大限制
syntaxerror
python的語法錯誤
zerodivisionerror
除數為零
斷言語句
功能:用於驗證程式中某個變數是否為預期值,通常用來判斷程式中是否出現了明顯非法的資料,如果出現了終止程式以免導致嚴重後果,同時也便於查詢錯誤。
assert 表示式 #斷定表示式是true,否則,丟擲asserterror異常
c_str = "runoob2016"
assert c_str.isnumeric() #返回assertionerror,及行位置,並終止程式
功能:對於龐大的集合,只定義生成規則,不實際生成集合(節省記憶體),現用現生成資料
功能:與生成器配合使用,依次讀取資料
max
=int
(input
('enter the max num:'))
n =0
while
true
:if n <
max:
print
(next
(f))
#next(生成器),next()函式的值為生成器yield語句的num
else
:break
n +=
1print
('done'
)
超邊界:
max
=int
(input
('enter the max num:'))
n =0
for i in f:
##for迴圈隱含next()函式
if n <
max:
print
(i)else
:break
n +=
1print
('done'
)
def
outer
( a )
:# outer是外部函式 a和b都是外函式的臨時變數
b =10def
inner()
:# inner是內函式,閉包函式
print
(a+b)
# 在內函式中,用到了外函式的臨時變數
return inner # 外函式的返回值是內函式的引用
if __name__ ==
'__main__'
:demo = outer(5)
demo(
)# 列印輸出15
# 此處即使改變outer()的函式體,demo()的值也不會改變,但會影響demo2
demo2 = outer(7)
# 返回的是inner(7),只是做了個引用,不會有任何顯示
demo2(
)# 列印輸出17
# 定義無輸入值(除了函式名func)的閉包,func為外部巢狀函式中的變數
defc_dec_0
(func)
:def
(*ar**,
**kw)
:# 順序執行語句一:此處為新增的功能
print
('這是內函式語句'
)# 順序執行語句二:執行原函式
# 閉包要素二:呼叫了外部函式的變數
func(
*ar**,
**kw)
# 閉包要素三:返回內嵌函式名
# 裝飾器寫法:功能相當於將now = c_dec_0(now)
# 語句貼在def now(...)上
@c_dec_0
# (*ar**,**kw)代表傳入0~無窮大個引數,
# 包含列表和字典等任意型別的引數
defnow
(*ar**,
**kw)
:# 函式功能就是:傳進來什麼就列印什麼
print
(*ar**,
**kw)
now(
'good'
)>>
>這是內函式語句
>>
>good
# 首層傳裝飾器的輸入值
defc_dec_1
(text)
:def
decorator
(func)
:# --------跟無輸入值裝飾器一樣:起始--------
def(
*args,
**kw)
:print
("這是新增的功能部分"
)# 這是執行被修飾的原函式
func(
*args,
**kw)
# --------跟無輸入值裝飾器一樣:結束---------
return decorator
@c_dec_1(
'execute'
)# 傳入引數的裝飾器
# (*ar**,**kw)代表傳入0~無窮大個引數,包含列表和字典等任意型別的引數
defnow
(*args,
**kw)
:print
(*args,
**kw)
now(
'good'
)# 函式呼叫
>>
>execute now
>>
>good
更多裝飾器,此處 python極簡筆記 異常
異常 def exceptionfunc print 7 0 exceptionfunc 使用try except 處理異常 def sloveexecption try print 7 0 except zerodivisionerror print divide by zero sloveexe...
Python 極簡教程(三)資料型別
每種語言都有各種資料型別。這就像在現實生活中,我們計數的時候需要用到數字,在表述金額 重量 距離等需要精確計數時用到小數,在日常交談中要用文字,等等。在計算機語言中,為了表述不同的情況,也需要用到各種資料型別。在 python 主要有數值型別 int,float 字串型別,布林型和空值。python...
Python 極簡教程(三)資料型別
每種語言都有各種資料型別。這就像在現實生活中,我們計數的時候需要用到數字,在表述金額 重量 距離等需要精確計數時用到小數,在日常交談中要用文字,等等。在計算機語言中,為了表述不同的情況,也需要用到各種資料型別。在 python 主要有數值型別 int,float 字串型別,布林型和空值。python...