博客地址:http://www.cnblogs.com/yudanqu/函數
一、集合數據類型,如list、tuple、dict、set、string……學習
二、generator,包括生成器和帶yield的generator functionspa
************************************************************************************************************************************3d
描述:isinstance() 函數來判斷一個對象是不是一個已知的類型code
語法:isinstance(object, classinfo)對象
參數:(1)object -- 實例對象blog
(2)classinfo -- 能夠是直接或間接類名、基本類型或者由它們組成的元組字符串
返回值:若是對象類型與classinfo的類型相同則返回True,不然返回Falseget
************************************************************************************************************************************
input
那麼我下面給你們看個小栗子:
在這裏面,首先我導入的Iterable的包,也就是可迭代對象,下面的四條語句是分別查看列表、元組、字典、字符串的類型,能夠看到他們四個都是可迭代對象,固然,可迭代對象遠不止這些,這裏只是給你們一個概念,而且看一下isinstance的使用方法。若是你還不能理解的話,能夠想一下,你有沒有寫過這樣一句話(for i in [1,2,3,4,5]),這是一個循環的表示方法,這裏面就是在循環列表中的元素,來實現內部語句塊。也能夠說成是遍歷這個列表,固然也就是迭代了。
迭代器就是不但能夠做用於for循環,還能夠被next()不斷的調用並返回下一個值,知道最後拋出一個錯誤StopIteration錯誤,表示沒法繼續返回下一個值。
對比:
能夠被next()函數調用並不斷返回下一個值得對象稱爲迭代器 (Iterator) 能夠直接做用於for循環的對象統稱爲可迭代對象(Iterable)
下面又是一個小栗子:
裏面的isinstance依然是判斷類型,咱們能夠看到,(x for x in range(5))是一個迭代器,咱們能夠把這個迭代器用一個屬性來接收,這樣方便咱們調用。注意上面提到的,迭代器是能夠被next()調用的,因此咱們next(L)來迭代輸出裏面的值。
如今的這些返回值爲False,你們應該瞭解他的緣由了吧,[](){}"" 等等這些都只是可迭代對象,而不是迭代器。(注意那兩個單詞是不同的)
除此以外還須要說明的一點是,其餘的數據類型也能夠轉爲迭代器:
# 例如:列表轉迭代器: a = iter([1,2,3,4]) print(next(a))
元組,字符串,字典均可以這樣。
endstr = 'end' str = "" for line in iter(input,endstr): str += line + '\n' print(str) #目的就是爲了使input不直接退出,能夠換行繼續輸入;並且在打印str時也能夠分行同時打印
看一下效果:
迭代器大概就先介紹到這裏,歡迎你們和我來一塊兒學習。
做者:漁單渠(yudanqu)