在第三章中了解了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...