之前斷斷續(xù)續(xù)的學習過一些python的基本語法,但是不夠牢固。為了之后學習python爬蟲和機器學習所以重新過一遍python的語法和基本知識。這里只做一些重點的記錄,不做全面的基礎知識點記錄。

學習Python推薦一個網址,講得很詳細?廖雪峰得官方網站
生成器:通過列表生成式,我們可以直接創(chuàng)建一個列表。但是,受到內存限制,列表容量肯定是有限的。而且,創(chuàng)建一個包含100萬個元素的列表,不僅占用很大的存儲空間,如果我們僅僅需要訪問前面幾個元素,那后面絕大多數(shù)元素占用的空間都白白浪費了。
所以,如果列表元素可以按照某種算法推算出來,那我們是否可以在循環(huán)的過程中不斷推算出后續(xù)的元素呢?這樣就不必創(chuàng)建完整的list,從而節(jié)省大量的空間。在Python中,這種一邊循環(huán)一邊計算的機制,稱為生成器:generator。

定義generator的另一種方法。如果一個函數(shù)定義中包含yield關鍵字,那么這個函數(shù)就不再是一個普通函數(shù),而是一個generator

迭代器:
凡是可作用于for循環(huán)的對象都是Iterable類型;
凡是可作用于next()函數(shù)的對象都是Iterator類型,它們表示一個惰性計算的序列;
集合數(shù)據類型如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函數(shù)獲得一個Iterator對象。
Python的for循環(huán)本質上就是通過不斷調用next()函數(shù)實現(xiàn)的,例如:

高階函數(shù):
變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。
map() reduce() filter()



返回函數(shù):

閉包問題:


匿名函數(shù) lambda:

裝飾器:


偏函數(shù):
