Python學習(一)基礎知識

2022-03-26 06:12:24 字數 3099 閱讀 4232

參考資料:相應實體書為:《自學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

defsqr(x):

2return x ** 2

34 a = [2, 3, 4]

5print map(sqr, a)

輸出:[4 9 6]

注:根據函式引數的多少,map 可以接受多組序列,將其對應的元素作為引數傳入函式

1

defadd(x, y):

2return x +y

34 a = (2, 3, 4)

5 b = [10, 5, 3]

6print map(add, a, b)

輸出:[12 8 7]

11. 函式通過元組和字典傳入引數  //結合可變引數的函式定義方式進行思考def func(arg1, *arg2, **arg3):  位置引數在前,鍵值對引數在後

1

defadd(x, y):

2"""

add two numbers

"""3 a = x +y

4returna5

6 z = (2, 3)

7print add(*z)  #傳入元組引數z,其中* 必不可少

輸出:5

1

defadd(x, y):

2"""

add two numbers

"""3 a = x +y

4returna5

6 w =

7print add(**w)  #傳入字典引數w,其中 ** 必不可少

輸出:5

12. 模組

注:為了提高效率,python只會載入模組一次,已經載入的模組再次載入時,python並不會真正執行載入操作,哪怕模組的內容已經改變

#利用__name__屬性,使得.py檔案既能當作指令碼,又能當作模組用

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()

13. 常用的標準庫

14. 警告warnings:出現了一些需要讓使用者知道的問題,但又不想停止程式,可以使用警告

1

import

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...