最近再看"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。所有...