python編程入門讀書筆記2

來源:互聯網
上載者:User

標籤:讀書筆記   編程   python   工作   

資料結構

python中兩大主力資料結構是列表和字典。列表按順序儲存資料,而字典像小型資料庫,使用鍵高效的儲存和檢索資料。


type函數可以檢查值或變數的資料類型。


序列是一組按順序排列的值,python中有3種內建的序列類型:字串、元組和列表。第一個正索引為0,指向左端。第一個負索引為-1,指向右端。也可使用切片標記法複製子序列,例如s[begin:end]從索引begin複製到end-1的元素。可使用+和*進行拼接,要進行拼接序列的類型必須相同,不能元組和列表進行拼接。可使用len函數進行計算長度。運算式xin s檢查序列s是否包含元素x,如果包含返回True否則返回False。


元組

元組是一種不可變序列,包含零個或更多個值。元組用圓括弧括起,其中元素用逗號分隔。如果要修改元組,就必須建立一個體現更改的新元組。如果需要頻繁修改就將元組換成列表。單元素元組後面必須有逗號分隔。


x in tup#如果x是tup的元素返回Truelen(tup)#元組tup包含的元素數tup.count(x)#元素x在元組tup中出現的次數tup.index(x)#元組tup中第一個元素x的索引



列表

列表是可變的,可在不複製的情況下,添加、刪除或修改列表元素。列表用方括弧括起其中元素用逗號分隔,列表可包含任何類型的值,空列表用[]表示。在處理列表的程式尋找錯誤時,通常必須明白列表元素指向其值,而不是包含它們。當列表中有元素指向自身時,python能夠識別出自引用。函數reverse不會製作列表的拷貝,而是直接刪除列表的元素,因此我們說反轉是就地完成的。


s.append()#在列表s末尾添加元素xs.count()#返回元素x在列表s中出現的次數s.extend(lst)#將lst中所有元素都添加到s中s.index(x)#返回第一次x的索引s.insert(i,x)#將元素x插入到索引i指定的元素前面,結果s[i]== xs.pop(i)#刪除並返回s中索引為i的元素s.remove(x)#刪除s中的第一個x元素s.reverse()#反轉s中元素的排列順序s.sort()#將s中的元素按升序排列



列表解析,也可使用列表解析進行篩選

n*n for n in range(1,11)2*n+7 for n in range(1,11)n**3 for n in range(1,11)n for n in nums if n>0c for c in s if c.lower()c for c in s if c.lower() not in ‘aeiou’



字典

在儲存鍵值對方面,python字典是一個效率極高的資料結構。字典也稱為關聯陣列、散列表。字典利用了一個巧妙的編程訣竅-散列。從本質上說,字典的每個鍵值都被轉換為一個數字-散列值。訪問值時將提供的鍵值轉換為散列值,再跳到列表相應的位置上。

字典中的鍵必須是獨一無二的,而且鍵是不可變的。如果你預先不知道某個值是否包含在字典中,可使用keyin d進行檢查。如果key包含在字典d中則返回True。


d.items()#返回一個由字典d的索引值對組成的視圖d.keys()#返回一個由字典d的鍵組成的視圖d.values()#返回一個由字典d的值組成的視圖d.get(key)#返回與key相關聯的值d.pop(key)#刪除鍵key並返回與之想關聯的值d.popitem()#返回字典d中的某個索引值對d.clear()#刪除字典d的所有元素d.copy()#複製字典dd.fromkeys(s,t)#建立一個新字典,其中的鍵來自s,值來自td.setdefault(key,v)#如果key包含在字典d中則返回其值,否則返回v並將(key,v)添加到字典d中。d.update(e)#將e中的索引值對添加到字典d中,e可能是字典,也可以是索引值對序列。



集合

集合是一系列不重複的元素。集合類似於字典,但只包含鍵,而沒有相關聯的值。集合分兩類:可變集合和不可變集合。集合最常用的的功能就是刪除序列中的重複元素。


輸入和輸出

python提供了強大的基本檔案I/O支援。


設定字串格式x= 1/81print(x) #0.0123456790123print(‘value:%.2f’%x)#0.01print(‘value:%.5f’%x)#0.01235



d整數o八進位x小寫十六進位X大寫十六進位e小寫科學計數法浮點數E大寫科學計數法浮點數F浮點數s字串%%字元



也可以使用format函數進行字串的格式整理。‘my{0} has {1}’.format(‘dog’,’fleas’)輸出:’mydog has fleas’‘1/81= {x}’.format(x = 1/81)輸出:’1/81= 0.0123456790123’‘num= {x:.{d}f}’.format(x = 1/81,d = 3)輸出:’num= 0.012’‘num= {x:.{d}f}’.format(x = 1/81,d = 4)輸出:’num= 0.0123’

可以通過其設定精度,如果這都滿足不了你,那麼還有最後一招了,模組啊,可以使用Cheetah模組或者Django模組。


讀寫檔案

檔案是一個命名的位元集合,儲存在硬碟、U盤、記憶體條等輔助存放裝置中。檔案分為兩類:文字檔和二進位檔案。其中前者本質上是儲存在磁碟中的字串,後者是其他各種內容。


os.getcwd()#返回當前工作目錄的名稱os.listdir(p)#返回一個字串列表,其中包含路徑p指定的檔案夾中所有檔案名稱os.chdir(p)#將當前工作目錄設定為路徑pos.path.isfile(p)#當路徑p指定的是一個檔案的名稱,返回Trueos.path.isdir(p)#當路徑p指定的是一個檔案夾的名稱,返回Trueos.stat(fname)#返回有關fname的資訊,如大小和最後一次



如果只是想獲悉當前工作目錄下的.py檔案,可使用下方的函數。

def list_py(path = None):     if path == None:<pre name="code" class="html">     path= os.getcwd()<pre name="code" class="html">     return[fname for fname in os.listdir(path)      if os.path.isfile(fname)     if fname.endswith(‘.py’)]





返回當前工作目錄中所有檔案的大小總和。

def size_in_bytes(fname):     return os.stat(fname).st_sizedef cwd_size_in_bytes():     total= 0     for name in files_cwd():          total= total + size_in_bytes(name)     return total




處理文字檔

逐行讀取文字檔

#r讀取w寫入a在檔案末尾輸入b二進位模式t文字模式+為讀寫開啟檔案def print_file1(fname):     f= open(fname,’r’)     for line in f:          print(line,end= ‘’)     f.close()



f.read()#讀取檔案f.write(‘helloworld! \n’)#寫入檔案f.seek(0)#讓檔案指標指向檔案開頭



pickle

pickle.dump將資料結構儲存到磁碟中,之後可以使用pickle.load從磁碟擷取資料結構。


讀取網頁

通過urllib模組    

python編程入門讀書筆記2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.