Python大牛精心製作零基礎入門到進階學習所有知識點!

金羅老師發表於2018-11-29

幸運的是,Python 是一門初學者友好的程式語言,想要完全掌握它,你不必花上太多的時間和精力。


基礎語法

Python 是一門高階、動態型別的多正規化程式語言;定義 Python 檔案的時候我們往往會先宣告檔案編碼方式:

網際網路科技發展蓬勃興起,人工智慧時代來臨,抓住下一個風口。為幫助那些往想網際網路方向轉行想學習,卻因為時間不夠,資源不足而放棄的人。我自己整理的一份最新的Python進階資料和高階開發教程,Python開發學習群:301056051 歡迎進階中和進想深入Python的小夥伴

Python大牛精心製作零基礎入門到進階學習所有知識點!

人生苦短,請用 Python,大量功能強大的語法糖的同時讓很多時候 Python 程式碼看上去有點像虛擬碼。譬如我們用 Python 實現的簡易的快排相較於 Java 會顯得很短小精悍:

Python大牛精心製作零基礎入門到進階學習所有知識點!



可以根據  __name__ 關鍵字來判斷是否是直接使用 python 命令執行某個指令碼,還是外部引用;Google 開源的 fire 也是不錯的快速將某個類封裝為命令列工具的框架:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python 2 中 print 是表示式,而 Python 3 中 print 是函式;如果希望在 Python 2 中將 print 以函式方式使用,則需要自定義引入:

from __future__ import print_function

我們也可以使用 pprint 來美化控制檯輸出內容:

import pprint
stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
pprint.pprint(stuff)# 自定義引數pp = pprint.PrettyPrinter(depth=6)
tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',('parrot', ('fresh fruit',))))))))
pp.pprint(tup)

模組

Python 中的模組(Module)即是 Python 原始碼檔案,其可以匯出類、函式與全域性變數;當我們從某個模組匯入變數時,函式名往往就是名稱空間(Namespace)。而 Python 中的包(Package)則是模組的資料夾,往往由  __init__.py 指明某個資料夾為包:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Package 可以為某個目錄下所有的檔案設定統一入口:

someDir/
main.py
subModules/
__init__.py
subA.py
subSubModules/
__init__.py
subSubA.py

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python大牛精心製作零基礎入門到進階學習所有知識點!

表示式與控制流

條件選擇

Python 中使用 if、elif、else 來進行基礎的條件選擇操作:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python 同樣支援 ternary conditional operator:


a if condition else b

也可以使用 Tuple 來實現類似的效果:

Python大牛精心製作零基礎入門到進階學習所有知識點!

迴圈遍歷

for-in 可以用來遍歷陣列與字典:

Python大牛精心製作零基礎入門到進階學習所有知識點!

如果我們希望使用數字序列進行遍歷,可以使用 Python 內建的  range 函式:

Python大牛精心製作零基礎入門到進階學習所有知識點!

基本資料型別

可以使用內建函式進行強制型別轉換(Casting):

int(str)
float(str)
str(int)
str(float)

Number: 數值型別

Python大牛精心製作零基礎入門到進階學習所有知識點!

布林型別

Python 提供了常見的邏輯運算子,不過需要注意的是 Python 中並沒有使用 &&、|| 等,而是直接使用了英文單詞。

Python大牛精心製作零基礎入門到進階學習所有知識點!

String: 字串

Python 2 中支援 Ascii 碼的 str() 型別,獨立的 unicode() 型別,沒有 byte 型別;而 Python 3 中預設的字串為 utf-8 型別,並且包含了 byte 與 bytearray 兩個位元組型別:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python 字串支援分片、模板字串等常見操作:

Python大牛精心製作零基礎入門到進階學習所有知識點!

# 移除所有的特殊字元
re.sub('[^A-Za-z0-9]+', '', mystring)

如果需要判斷是否包含某個子字串,或者搜尋某個字串的下標:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Regex: 正規表示式

Python大牛精心製作零基礎入門到進階學習所有知識點!

下面列舉了常見的表示式使用場景:

Python大牛精心製作零基礎入門到進階學習所有知識點!

集合型別

List: 列表

Operation: 建立增刪

list 是基礎的序列型別:

Python大牛精心製作零基礎入門到進階學習所有知識點!

可以使用 append 與 extend 向陣列中插入元素或者進行陣列連線

Python大牛精心製作零基礎入門到進階學習所有知識點!

可以使用 pop、slices、del、remove 等移除列表中元素:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Iteration: 索引遍歷

你可以使用基本的 for 迴圈來遍歷陣列中的元素,就像下面介個樣紙:

Python大牛精心製作零基礎入門到進階學習所有知識點!

如果你在迴圈的同時也希望能夠獲取到當前元素下標,可以使用 enumerate 函式:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Python 也支援切片(Slices):

Python大牛精心製作零基礎入門到進階學習所有知識點!

Comprehensions: 變換

Python 中同樣可以使用 map、reduce、filter,map 用於變換陣列:

Python大牛精心製作零基礎入門到進階學習所有知識點!

reduce 用於進行歸納計算:

Python大牛精心製作零基礎入門到進階學習所有知識點!

filter 則可以對陣列進行過濾:

Python大牛精心製作零基礎入門到進階學習所有知識點!

字典型別

建立增刪

d = {'cat': 'cute', 'dog': 'furry'} # 建立新的字典
print d['cat'] # 字典不支援點(Dot)運算子取值

如果需要合併兩個或者多個字典型別:

Python大牛精心製作零基礎入門到進階學習所有知識點!

索引遍歷

可以根據鍵來直接進行元素訪問:

Python大牛精心製作零基礎入門到進階學習所有知識點!

可以使用 for-in 來遍歷陣列:

Python大牛精心製作零基礎入門到進階學習所有知識點!

其他序列型別

集合

Python大牛精心製作零基礎入門到進階學習所有知識點!

函式

函式定義

Python 中的函式使用 def 關鍵字進行定義,譬如:

Python大牛精心製作零基礎入門到進階學習所有知識點!

引數

Option Arguments: 不定引數

Python大牛精心製作零基礎入門到進階學習所有知識點!

生成器

Python大牛精心製作零基礎入門到進階學習所有知識點!

裝飾器

裝飾器是非常有用的設計模式:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Managed Attributes: 受控屬性

Python大牛精心製作零基礎入門到進階學習所有知識點!

類方法與靜態方法

Python大牛精心製作零基礎入門到進階學習所有知識點!

物件

例項化

屬性操作

Python 中物件的屬性不同於字典鍵,可以使用點運算子取值,直接使用 in 判斷會存在問題:

Python大牛精心製作零基礎入門到進階學習所有知識點!

建議使用 hasattr、getattr、setattr 這種方式對於物件屬性進行操作:

Python大牛精心製作零基礎入門到進階學習所有知識點!

異常與測試

異常處理

Context Manager - with

with 常用於開啟或者關閉某些資源:

Python大牛精心製作零基礎入門到進階學習所有知識點!

單元測試

Python大牛精心製作零基礎入門到進階學習所有知識點!

儲存

檔案讀寫

路徑處理

Python 內建的  __file__ 關鍵字會指向當前檔案的相對路徑,可以根據它來構造絕對路徑,或者索引其他檔案:

Python大牛精心製作零基礎入門到進階學習所有知識點!

可以使用 listdir、walk、glob 模組來進行檔案列舉與檢索:

Python大牛精心製作零基礎入門到進階學習所有知識點!

簡單檔案讀寫

Python大牛精心製作零基礎入門到進階學習所有知識點!

複雜格式檔案

JSON

Python大牛精心製作零基礎入門到進階學習所有知識點!

XML

我們可以使用 lxml 來解析與處理 XML 檔案,本部分即對其常用操作進行介紹。lxml 支援從字串或者檔案中建立 Element 物件:

Python大牛精心製作零基礎入門到進階學習所有知識點!

其提供了迭代器以對所有元素進行遍歷:

Python大牛精心製作零基礎入門到進階學習所有知識點!

lxml 支援以 XPath 查詢元素,不過需要注意的是,XPath 查詢的結果是陣列,並且在包含名稱空間的情況下,需要指定名稱空間:

Python大牛精心製作零基礎入門到進階學習所有知識點!

Excel

可以使用 [xlrd]() 來讀取 Excel 檔案,使用 xlsxwriter 來寫入與操作 Excel 檔案。

Python大牛精心製作零基礎入門到進階學習所有知識點!

檔案系統

對於高階的檔案操作,我們可以使用 Python 內建的 shutil

# 遞迴刪除 appName 下面的所有的資料夾
shutil.rmtree(appName)

網路互動

Requests

Requests 是優雅而易用的 Python 網路請求庫:

Python大牛精心製作零基礎入門到進階學習所有知識點!

資料儲存

MySQL

Python大牛精心製作零基礎入門到進階學習所有知識點!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561003/viewspace-2222169/,如需轉載,請註明出處,否則將追究法律責任。

相關文章