python核心程式設計讀書筆記1

2021-04-24 18:22:18 字數 4909 閱讀 6345

最近再看"python核心程式設計"這本書,就順便記下筆記,下面是前兩章的筆記,主要是第二章的,安裝python太簡單了就不記了。

一 python的print語句

與字串格式運算子( % )結合使用,可實現字串替換功能,例如:

>>> print "%s is number %d!" % ("python", 1)

python is number 1! 

%s 表示由乙個字串來替換,而%d 表示由乙個整數來替換,另外乙個很常用的就是%f, 它表示由乙個浮點數來替換。

二 python注釋

注釋有兩種

三 運算子

抄一下《運算子

名稱說明例子+

加兩個物件相加

3 + 5得到8。'a' + 'b'得到'ab'。-減

得到負數或是乙個數減去另乙個數

-5.2得到乙個負數。50 - 24得到26。*乘

兩個數相乘或是返回乙個被重複若干次的字串

2 * 3得到6。'la' * 3得到'lalala'。**冪

返回x的y次冪

3 ** 4得到81(即3 * 3 * 3 * 3)/除

x除以y

4/3得到1(整數的除法得到整數結果)。4.0/3或4/3.0得到1.3333333333333333

//取整除

返回商的整數部分

4 // 3.0得到1.0%取模

返回除法的餘數

8%3得到2。-25.5%2.25得到1.5

<<

左移把乙個數的位元向左移一定數目(每個數在記憶體中都表示為位元或二進位制數字,即0和1)

2 << 2得到8。——2按位元表示為10

>>

右移把乙個數的位元向右移一定數目

11 >> 1得到5。——11按位元表示為1011,向右移動1位元後得到101,即十進位制的5。

&按位與

數的按位與

5 & 3得到1。

|按位或

數的按位或

5 | 3得到7。

^按位異或

數的按位異或

5 ^ 3得到6

~按位翻轉

x的按位翻轉是-(x+1)

~5得到6。

<

小於返回x是否小於y。所有比較運算子返回1表示真,返回0表示假。這分別與特殊的變數true和false等價。注意,這些變數名的大寫。

5 < 3返回0(即false)而3 < 5返回1(即true)。比較可以被任意連線:3 < 5 < 7返回true。

>

大於返回x是否大於y

5 > 3返回true。如果兩個運算元都是數字,它們首先被轉換為乙個共同的型別。否則,它總是返回false。

<=

小於等於

返回x是否小於等於y

x = 3; y = 6; x <= y返回true。

>=

大於等於

返回x是否大於等於y

x = 4; y = 3; x >= y返回true。

==等於

比較物件是否相等

x = 2; y = 2; x == y返回true。x = 'str'; y = 'str'; x == y返回false。x = 'str'; y = 'str'; x == y返回true。

!=不等於

比較兩個物件是否不相等

x = 2; y = 3; x != y返回true。

not布林「非」

如果x為true,返回false。如果x為false,它返回true。

x = true; not y返回false。

and布林「與」

如果x為false,x and y返回false,否則它返回y的計算值。

x = false; y = true; x and y,由於x是false,返回false。在這裡,python不會計算y,因為它知道這個表示式的值肯定是false(因為x是false)。這個現象稱為短路計算。

or布林「或」

如果x是true,它返回true,否則它返回y的計算值。

x = true; y = false; x or y返回true。短路計算在這裡也適用。

四 字串

使用索引運算子和切片運算子[:]可得到子字串,第乙個字元索引是0,最後乙個字元索引是-1,+連線字串,*重複字串。

>>>pystr='python'

>>>pystr=[0]

'p'>>>pystr=[2:5]

'tho'

>>>pystr=[:2]

'py'

>>>pystr=[3:]

'hon'

>>>pystr=[-1]

'n'五 列表和元組

列表和元組有幾處重要的區別。列表元素用中括號[ ]包裹,元素的個數及元素的值可

以改變。元組元素用小括號( )包裹,不可以更改(儘管他們的內容可以)。元組可以看成是

唯讀的列表。通過切片運算[ ] 和 [ : ] 可以得到子集,這一點與字串的使用方法一樣

>>> alist = [1, 2, 3, 4]

>>> alist

[1, 2, 3, 4]

>>> alist[0]

1>>> alist[2:]

[3, 4]

>>> alist[:3]

[1, 2, 3]

>>> alist[1] = 5

>>> alist

[1, 5, 3, 4]

元組也可以進行切片運算,得到的結果也是元組(不能被修改):

>>> atuple = ('robots', 77, 93, 'try')

>>> atuple

('robots', 77, 93, 'try')

>>> atuple[:3]

('robots', 77, 93)

>>> atuple[1] = 5

traceback (innermost last):

file "", line 1, in ?

typeerror: object doesn't support item assignment

六 字典

字典是python 中的對映資料型別,工作原理類似perl 中的關聯陣列或者雜湊表,由鍵-

值(key-value)對構成。幾乎所有型別的python 物件都可以用作鍵,以數字或者

字串最為常用。

值可以是任意型別的python 物件,字典元素用大括號包裹。

>>> adict = # create dict

>>> adict['port'] = 80 # add to dict

>>> adict

>>> adict.keys()

['host', 'port']

>>> adict['host']

'earth'

>>> for key in adict:

... print key, adict[key]

...host earth

port 80

七 開啟檔案的內建函式open() 、file()

handle = open(file_name, access_mode = 'r')

file_name 變數包含我們希望開啟的檔案的字串名字, access_mode 中 'r' 表示讀取,

'w' 表示寫入, 'a' 表示新增。其它可能用到的標聲還有 '+' 表示讀寫, 'b'表示二進位制訪

問. 如果未提供 access_mode , 預設值為 'r'。如果 open() 成功, 乙個檔案物件控制代碼會被

返回。所有後續的檔案操作都必須通過此檔案控制代碼進行。當乙個檔案物件返回之後, 我們就可

以訪問它的一些方法, 比如 readlines() 和close().檔案物件的方法屬性也必須通過句點屬

性標識法訪問

# coding=utf-8

filename = raw_input(輸入檔案路徑和檔名: ')

fobj = open(filename, 'r')

for eachline in fobj:

print eachline,

fobj.close()

八 錯誤和異常

try-except 語句給**新增錯誤檢測及異常處理。 try之後的**組, 就是你打算管理的**。 except 之後的**組, 則是你處理錯誤的**。也可以通過使用 raise 語句故意引發乙個異常。

九 函式

定義函式: def  function_name()

定義類:  class ***()

十 實用函式

書上列舉的新手實用函式

dir([obj]) :顯示物件的屬性,如果沒有提供引數, 則顯示全域性變數的名字

help([obj]) :以一種整齊美觀的形式 顯示物件的文件字串, 如果沒有提供任何引數, 則會進入互動式幫助。

int(obj): 將乙個物件轉換為整數

len(obj) :返回物件的長度

open(fn, mode) :以 mode('r' = 讀, 'w'= 寫)方式開啟乙個檔名為 fn 的檔案

range([[start,]stop[,step]) :返回乙個整數列表。起始值為 start, 結束值為 stop - 1; start 預設值為 0, step默  認值為1。

raw_input(str) :等待使用者輸入乙個字串, 可以提供乙個可選的引數 str 用作提示資訊。

str(obj) :將乙個物件轉換為字串

type(obj) :返回物件的型別(返回值本身是乙個type 物件!)

Python核心程式設計讀書筆記

本次筆記針對原書第6章節列表 列表型別 內建函式 list.extend seq 把序列seq的內容新增到 列表中 list.index obj,i 0,j len list list.insert index,obj 刪除操作 list.pop index 1 根據位置刪除 list,remove...

python核心程式設計讀書筆記

python筆記 python 核心程式設計 python2.7為主,ipython和pycharm 1.輸入輸出和字串 在2.x中print後面的是整體,比如 總之2.x不要加 也不是函式只是乙個語句 print,input 不回車python 2.x print x,python 3.x pri...

讀書筆記 Windows核心程式設計

第二章 從windows nt後,windows所有版本都用unicode來構建。如果輸入乙個非unicom的字串,如ansi,函式會將其先轉換為unicode,再把結果傳回作業系統,這樣經過轉換後,需要更多的記憶體,而且執行速度更慢。並且,目前已知的windows的這些轉換函式存在一些bug。所有...