參考資料:相應實體書為:《自學python——程式設計基礎、科學計算及資料分析》)
1. python之禪:import this
python的標準庫提供了乙個 keyword 模組,可以輸出當前版本的所有關鍵字:import keyword + keyword.kwlist
2. ipython使用
3. python支援鏈式比較:x = 2; 1 < x <= 3 輸出true
5. list.extend(lst):將序列lst的元素依次新增到列表list的最後,相當於list += lst
6. 資料型別
7. 賦值機制(02.13 how-python-assignment-works)
(1)對於簡單型別而言,python會為每個出現的物件進行賦值(分配記憶體),哪怕它們的值是一樣的;不過,為了提高記憶體利用效率,對於一些簡單的物件,如一些數值較小的int物件,python採用了重用物件記憶體的辦法; //可以使用 id() 函式檢視記憶體位址,如id(x)返回變數x的記憶體位址;或者使用is 來判斷是不是指向同乙個事物(記憶體位址),如 x is y 返回true或false
(2)對於容器型別而言,python給新物件賦值時,僅僅是指向同一塊記憶體空間(不分配新記憶體),如 x = [500, 501, 502]; y = x; //改變列表資料時,會分配新的記憶體空間給新值,而舊值則會python自動呼叫垃圾處理機制**
8. 生成隨機數函式:range(), xrange() //xrange效果與range函式相同,但是xrange並不會一次性的產生所有的資料,可以節省時間和記憶體消耗
9. 列表推導式 x = range(1000000)
10. map方法生成序列:map(afun, aseq) //將函式 afun 應用到序列 aseq 上的每乙個元素上,返回乙個列表,不管這個序列原來是什麼型別
1注:根據函式引數的多少,map 可以接受多組序列,將其對應的元素作為引數傳入函式defsqr(x):
2return x ** 2
34 a = [2, 3, 4]
5print map(sqr, a)
輸出:[4 9 6]
111. 函式通過元組和字典傳入引數 //結合可變引數的函式定義方式進行思考def func(arg1, *arg2, **arg3): 位置引數在前,鍵值對引數在後defadd(x, y):
2return x +y
34 a = (2, 3, 4)
5 b = [10, 5, 3]
6print map(add, a, b)
輸出:[12 8 7]
1defadd(x, y):
2"""
add two numbers
"""3 a = x +y
4returna5
6 z = (2, 3)
7print add(*z) #傳入元組引數z,其中* 必不可少
輸出:5
112. 模組defadd(x, y):
2"""
add two numbers
"""3 a = x +y
4returna5
6 w =
7print add(**w) #傳入字典引數w,其中 ** 必不可少
輸出:5
注:為了提高效率,python只會載入模組一次,已經載入的模組再次載入時,python並不會真正執行載入操作,哪怕模組的內容已經改變
#利用__name__屬性,使得.py檔案既能當作指令碼,又能當作模組用13. 常用的標準庫1 pi = 3.141623
defsum(lst):
4"""
sum the values in a list
5"""
6 tot =0
7for value in
lst:
8 tot = tot +value
9return
tot10
11def
add(x, y):12"
add two values.
"13 a = x +y
14returna15
16def
test():
17 w = [0,1,2,3]
18assert(sum(w) == 6)
19print
'test passed.'20
21if
__name__ == '
__main__
': #當檔案被當作指令碼執行時,__name__的值為"__main__",會執行test()函式,當做模組匯入是,test()不執行
22 test()
14. 警告warnings:出現了一些需要讓使用者知道的問題,但又不想停止程式,可以使用警告
1import
warnings23
defmonth_warning(m):4if
not 1<= m <= 12:
5 msg = "
month (%d) is not between 1 and 12
" %m
6warnings.warn(msg, runtimewarning) #警告函式
78 month_warning(13)
輸出:runtimewarning: month (13) is not between 1 and 12
#設定忽略特定型別的警告1 warnings.filterwarnings(action = 'ignore', category = runtimewarning)
23 month_warning(13) #沒有警告出現
基礎知識(一) 學習python
本篇的目的總結學習過程中的小知識點 不斷更新中。super 函式是用於呼叫父類 超類 的乙個方法。super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序 mro 重複呼叫 鑽石繼承 等種種問題。super type object o...
Python學習筆記一 基礎知識
lovely python整理 python 弱資料型別,不需要強制宣告 python 一切都是物件 pyhton 語句塊以 結尾,並且下句縮排 python 復用級別 行 函式 類 模組 python 支援函式 python kiss原則 keep it stupid 一 中文支援 二 使用模組 ...
Python學習之一 Python基礎知識
1 print函式,在3.0一下直接 print 42可以將42列印出來,但在 3.0以後print作為函式,需要print 42 這樣使用。2 input函式,x input x 3 輸入乙個很大的數,python會自動轉換為長整型,比如 100000000000 輸出 100000000000l...