python學習手冊(第4版) 第四章

2021-08-20 23:14:49 字數 4339 閱讀 8176

在第三章中了解了python關於物件的使用,引入包後,包內的變數均可以作為物件來使用。

python程式分解為模組、語句、表示式、物件

1.python程式由模組構成

2.模組包含語句

3.語句包含表示式

4.表示式建立並處理物件

python資料型別

1.動態型別(自動跟蹤你的資料型別,而不需要申明**)

2.強型別(只能對乙個物件進行適合該物件型別的有效的操作)

好的的內建數學函式

>>>import math

>>>math.pi      #獲得圓周率

3.1415926

>>>import random

>>>random.random()     #獲取隨機數,0-1

0.2134621

>>>random.randrange(2,20)    #獲取隨機的整數,從2到20,包含2不包含20

>>>random.choice([1,3,5,6,7])    #從列表中獲取隨機的值

字串的一些操作

>>>a = 'apache'

>>>a.find('a')          #查詢它所在的第乙個索引,不存在則返回-1

>>>a.replace('a','a')    #查詢所有的'a',並全部替換為'a'

'apache'

>>>b = 'aaa,bbb,ccc'    

>>>b.split(',')    #以','分割字串,得到乙個列表

['aaa','bbb','ccc']

>>>b.upper()    #字母全部大寫

'aaa,bbb,ccc'

>>>b.isalpha()    #判斷是否為alpha,還有isdigit()方法,返回true或者false

false

>>>c = '    abc\n'

>>>c.rstrip()     #去掉尾部的空格

'   abc'

字串的兩種高階格式化的替換操作

>>>'%s,eggs,and,%s'%('spam','api')     #第一種格式化的替換操作,很常見

'spam,eggs,and,api'

>>>',eggs,and,'.format('spam','api')    #第二種格式化的替換操作,使用字串的format()方法

'spam,eggs,and,api' 

>>>dir(c)    #c為字串物件,使用dir()方法檢視字串內建的方法

>>>help(c.replace)     #檢視字串物件的replace方法的使用

#注意,方法不帶'()',表示方法本身,而不是呼叫方法。

使用python檢視ascii碼

>>>ord('\n')     #檢視換行符的ascii碼

>>>ord('a')    #檢視小寫字母a的ascii碼

高階文字處理工具:re   模式匹配/正規表示式

>>>import re       #匯入re模組/包

>>>m = re.match('/(.*)/(.*)/(.*)','/usr/local/nginx')     #使用正規表示式獲取字串中相應位置的內容

>>>m.groups()          #獲取匹配的內容,以match object的形式儲存,類似元祖

('usr','local','nginx')

>>>m.group(1)      #獲取第乙個匹配的內容,注意索引的起始值為1

『user'

列表:任意型別物件的有序集合

>>>list1 = [1,2,3,4,5,]

>>>list1

[1,2,3,4,5]

>>>len(list1)

>>>list1

[1,2,3,4,5,6]

>>>list1.pop()     #按索引刪除列表中的值,預設為-1,並返回刪除的值

>>>list1.remove(2)    #按傳入的值,對列表的第乙個匹配的值進行刪除,沒有返回值

>>>list1

[1,3,4,5]

>>>list1

[1,3,4,5,2]

>>>list1.sort()     #將列表排序,如果全為數值,則由小到大;如果全為字串,按首字母的ascii值從小到大排列,無返回值;無法對數值和子模混合的列表進行排序

>>>list1

[1,2,3,4,5]

>>>list1.reverse()    #將列表直接進行翻轉

>>>list1

[5,4,3,2,1]

列表高階用法:列表解析表示式(處理速度有一定的優勢)

>>>mm = [[1,2,3],[2,3,4],[3,4,5]]    #建立乙個二位的陣列

>>>col2 = [row[1] for row in mm]    #獲取二維陣列的第二列的值,返回乙個一維陣列

[2,3,4]

>>>col21 = [row[1] for row in mm if row[1] % 2 ==0 ]       #更複雜一些的列表解析表示式

[2,4]

使用next和map

>>>g = (sum(row) for row in mm) 

>>>next(g)       #返回g物件的第乙個值,前提是沒有使用list(g)來檢視g物件

>>>next(g)    #返回g物件的第二個值

>>>next(g)    #返回g物件的第三個值

>>>next(g)    #報錯,g物件已全部檢視結束

>>>g2 = list(map(sum,mm))    #g2與g的值相同

>>>g2

[6,9,12]

python中列表、元組、集合、字典都可以使用解析表示式建立

>>>[ord(x) for x in 'spam']            #使用解析表示式建立列表,直接返回乙個列表

[115,112,97,109]

>>>tuple(ord(x) for x in 'spam')      #使用解析表示式建立元組,返回乙個物件,使用tuple()轉化為元組並返回元組

(115,112,97,109)

>>>      #使用解析表示式建立集合,返回乙個集合

>>>      #使用解析表示式建立字典,返回乙個字典    

關於字典的操作

>>>d =

>>>d.keys()          #獲取字典的鍵名,返回dict_keys,類似列表

('name','age') 

>>>if 'age' in d.keys():              #使用in/not in關係表示式

.........    print(1)

>>>d.get('nam',12)          #使用字典的get()方法,可以傳入乙個預設值(可預設),如果沒有'nam'這個鍵,將返回預設值

元組的一些常用操作

>>>t = (1,2,3,4)

>>>t.index(3)         #返回值為3的索引值

>>>t.count(4)        #返回值為4的個數

>>>t2 = (1,2,[1,2])

>>>t2

(1,2,[1,2,3])

檔案的一些常用操作

>>>f = open('data.txt','w')    #開啟當前目錄下的檔案,如果不存在則新建,'w'為寫入模式,如果使用'r'為讀取模式,此時如果檔案不存在則報錯

>>>f.write('hello\nhi!')    #向檔案中寫入內容,返回寫入的字元個數;每次寫入預設將前一次覆蓋

>>>f.close()        #操作完檔案,須關閉以釋放對檔案的占用,否則檔案不能被系統其他軟體操做

>>>f.open('data.txt','r')   #以唯讀方式開啟檔案

>>>f.read()    #返回檔案的所有內容

hello

hi!>>>f.close()         

>>>f = open('data.txt','r')      #以唯讀模式開啟檔案

>>>f.readline()           #每次返回檔案的一行,逐次向下讀取;讀取完所有的行後,返回空字串''

hello\n

>>>f.close()

集合(唯一的不可變的無序集合)的一些交集、並集、差集,

>>>s1 = set('spam')    #使用set()方法建立乙個集合

>>>s1

>>>s2 =

>>>s1 & s2      #集合間的交集,返回乙個集合

>>>s1 | s2         #集合間的並集,返回乙個集合

Python學習手冊 第4版 學習筆記

python學習手冊 第4版 是學習python比較好的教程。具體教程網上去搜,很多!由於看的比較快,很多知識記得不是很牢。記筆記如下,便於一會按內容翻看。頁碼是pdf檔案的頁碼,不是書的頁號 p143 檔案讀寫 p147 使用者定義的類 p201 字串 p213 字串的步進和反轉 p227字串格式...

Python學習手冊 第4版 第04天

數字 複數有理分數 想起了初中,有沒有 無窮的整數精度 2 8 16進製制 0b001 0o12 0x222 oct bin hex可以對數字進行轉換,對比c 來說太簡單明瞭了 as integer radion is integer lambda表示式,我在使用c 11時,盡量不使用它,現在。x ...

Python學習手冊 第4版 第06 07天

py第六7天,工作有點小忙,看到字串部分了,想一口氣看完再總結下 對於 int a 3 c a 3 py 完全不一樣,c 是宣告乙個變數,內容是3,而py是建立乙個物件3,宣告乙個變數a 引用 物件3,py的說法 引用是自動形成的從變數到物件的指標,py提到指標適合嗎,書的作者也是c 出身,哈哈 p...