前三期請到我博客里找
https://blog.csdn.net/hebtu666
?
我們繼續總結
except的用法和作用
try/except: 捕捉由PYTHON自身或寫程序過程中引發的異常并恢復
except: 捕捉所有其他異常
except name: 只捕捉特定的異常
except name, value: 捕捉異常及格外的數據(實例)
except (name1,name2) 捕捉列出來的異常
except (name1,name2),value: 捕捉任何列出的異常,并取得額外數據
else: 如果沒有引發異常就運行
finally: 總是會運行此處代碼
Python自省
這個也是python彪悍的特性.自省就是面向對象的語言所寫的程序在運行時,所能知道對象的類型.簡單一句就是運行時能夠獲得對象的類型.比如type(),dir(),getattr(),hasattr(),isinstance().
python容器
列表:元素可變(任何數據類型),有序(可索引),append/insert/pop;
元組:元素不可變,但元素中的可變元素是可變的;有序(可索引);而且元組可以被散列,例如作為字典的鍵。
集合:無序(不可被索引)、互異
字典:無序,鍵值對(key:value),key唯一不可重復
map()
map()
函數接收兩個參數,一個是函數,一個是Iterable
,map
將傳入的函數依次作用到序列的每個元素,并把結果作為新的Iterator
返回。(重點理解)
舉例說明,比如我們有一個函數f(x)=x2,要把這個函數作用在一個list [1, 2, 3, 4, 5, 6, 7, 8, 9]
上,就可以用map()
實現如下:
>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
map()
作為高階函數,事實上它把運算規則抽象了,因此,我們不但可以計算簡單的f(x)=x2,還可以計算任意復雜的函數,比如,把這個list所有數字轉為字符串:
>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
reduce
reduce
把一個函數作用在一個序列[x1, x2, x3, ...]
上,這個函數必須接收兩個參數,reduce
把結果繼續和序列的下一個元素做累積計算
簡單例子:
>>> from functools import reduce
>>> def fn(x, y):return x * 10 + y>>> reduce(fn, [1, 3, 5, 7, 9])
13579
結合一下,我們可以自己寫出int()函數
from functools import reducea={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}def charnum(s):return a[s]def strint(s):return reduce(lambda x, y: x * 10 + y, map(charnum, s))
下一期主要介紹更多相關函數和常見使用。