目錄
- 1. 簡述
- 2. 什么是 Python?
- 3. 面向對象簡述
- 3.1 面向過程
- 3.2 面向對象
- 3.3 面向對象的主要優點
- 3.4 面向對象的基本概念
- 3.5 面向對象程序設計
- 4. Python語言的版本和解釋器
- 5. Python 編程工具
- 6. Python 的三種編程方式
- 7. 簡單的 Python 程序
- 8. 高級一點的 Python 程序
1. 簡述
這段時間在寫爬蟲和做數據分析,才發現有一些常用的函數已經不太記得了,因此接著這個機會,重新復習一下 Python
,做做筆記,也回味一下那段美好的時光~
2. 什么是 Python?
Python
是一種解釋型、面向對象的編程語言,是一個開源語言,擁有大量的庫,可以高效地開發各種應用程序。它簡單、高級、面向對象、免費開源,有可擴展性、可移植性、豐富的庫和可嵌入性。
注意 Python
和 C
語言不一樣,C
語言是編譯型語言,而 Python
是解釋型語言。那么編譯型語言和解釋型語言有什么區別呢?
- 編譯型語言:
它要求用戶先把整個程序代碼寫好,隨后進行編譯,把源代碼編譯成機器語言的文件,如exe
格式的可執行文件。因為只需編譯一次,以后運行時不需要編譯,直接運行可執行文件即可,所以編譯型語言執行效率高。 - 解釋型語言:
它不要求用戶一次性把整個程序代碼寫好,用戶可以寫一行,執行一行。解釋型語言每次運行都需要將源代碼解釋稱機器碼并執行,效率較低。
用通俗易懂的例子來講吧:
比如現在在吃小龍蝦,我們的最終目的都是吃完蝦肉,
- 如果你是先去除全部的蝦殼再吃蝦,那么這就是編譯;
- 如果你是剝好一只蝦就吃一只蝦,剝好一只蝦就吃一只蝦,那么這就是解釋。
那么什么又是面向對象呢?
3. 面向對象簡述
3.1 面向過程
- 需要求解的問題域被視為待處理的一個大過程,經分析處理后,并根據問題的復雜程度,整個系統最終被分解為一個個易于處理的子過程。
- 面向過程方法將過程(或函數)作為系統的主要構件,數據和對數據的操作(函數)分離。
該方法對需求變化的適應能力差,并且處理大型、復雜問題時,系統維護困難。
像大家熟悉的 C
語言就是面向過程的編程語言。
3.2 面向對象
- 直接以問題域中的事物(對象)為中心來思考問題,把對象作為系統的基本構成單位,又通過將對象之間的相互作用、相互聯系映射到計算機系統來模擬現實客觀世界。
- 面向對象把數據和對數據的處理看成一個整體——對象,其概念和處理方法比較符合人類認識問題、分析問題和解決問題的一般規律。
比如我們今天介紹的 Python
就像面向對象的編程語言。
3.3 面向對象的主要優點
- 自然高效:可更客觀更自然地描述現實世界。
- 易于重用:相關機制可方便繼承已有或已經完成的工作,而不必一切從頭開始。
- 便于維護:開發出的系統健壯,適應性和擴展性強。
3.4 面向對象的基本概念
-
對象:
- 人們進行研究的任何事物統稱為對象。
- 對象可以是有形的實體,也可以是活動或事件等。
-
屬性和方法:
- 屬性是描寫對象靜態特性的數據元素。
- 方法是用于描寫對象動態特性(行為特性)的一組操作。
-
封裝:
通過對象把數據以及對數據的操作結合在一起。 -
類:
類是對一組具有相同特性的對象的抽象描述。 -
實例化:
實例化是指在類定義的基礎上構造對象的過程。 -
繼承:
一個新類(子類)從已有的類(父類)那里獲得已有特性和功能。 -
多態:
不同的對象可以以不同的方式響應相同的消息。
3.5 面向對象程序設計
面向對象程序設計(Object Oriented Programming
,OOP
):
- 主要針對大型軟件設計而提出,使得軟件設計更加靈活,能夠很好地支持代碼復用和設計復用,代碼具有更好的可讀性和可擴展性,大幅度降低了軟件開發的難度。
- 將數據以及對數據的操作封裝在一起,組成一個相互依存、不可分割的整體(對象),不同對象之間通過消息機制來通信或者同步。
- 對相同類型的對象進行分類、抽象后,得出共同的特征而形成了類,面向對象程序設計的關鍵就是如何合理地定義這些類并且組織多個類之間的關系。
- 例如,繪圖程序中的定義矩形類,一次執行時可以創建很多矩形對象。
4. Python語言的版本和解釋器
-
版本:
2
個主要版本:Python 2
和Python 3
;Python 3
和Python 2
不兼容。Python 2
最遲將于2020
年全面放棄維護和更新,建議學習和使用Python 3
,本次分享的代碼皆使用Python 3
。
-
Python
解釋器:
實現Python
語言語法的程序是Python
解釋器,常用的Python
解釋器:- Cpython
- Jython
- IronPython
- PyPy
5. Python 編程工具
Python
的編程工具:
- IDLE(Python內置的集成開發環境)
- Anaconda3(內含Jupyter Notebook和Spyder,做數據分析時常用)
- PyCharm(本人使用的主要編程工具)
- Visual Studio Code
6. Python 的三種編程方式
-
交互式:
對每個輸入語句即時運行結果,適合語法練習。
例如,用Python
解釋器提供的命令行方式。 -
文件式:
批量執行一組語句并運行結果,編程的主要方式。
例如,用Python
系統提供的IDLE
。 -
Web方式:
在網頁中編寫代碼塊,方便添加文字,顯示圖形,適合學習和算法研究。
例如,Anaconda
的Jupyter Notebook
。
7. 簡單的 Python 程序
-
Hello World:
讓我們來試試入門每門編程語言前都會輸出的一句話:Hello Worldprint("Hello World!")
輸出:
Hello World!
-
簡單的算術運算:
print(2023 + 10) print(2023 - 10) print(2023 * 10) print(2023 / 10) print(2023 % 10) print(2023 // 10)
輸出:
2033 2013 20230 202.3 3 202
-
計算矩形的面積:
length = 3 # 矩形的長 width = 4 # 矩形的寬 print(f"矩形的面積為:{length * width}")
輸出:
矩形的面積為:12
-
畫圖:
import turtleturtle.pensize(2) turtle.circle(10) turtle.circle(40) turtle.circle(80) turtle.circle(160)
輸出:
8. 高級一點的 Python 程序
-
掃雷:
-
畫圖——冰墩墩:
-
爬蟲:
-
和平精英槍械庫圖片
-
可視化大屏:
-
知識系統:
武漢大學建筑知識系統: -
背詞軟件:
-
發送郵件:
-
人工智能(機器學習、深度學習以及強化學習等):
復現美國OpenAI公司開發的機器學習系統-Hide and Seek(捉迷藏)游戲系統: -
大數據分析:
- IMDB數據集分析:
- IMDB數據集分析:
-
此外還有諸如
web
開發等小程序,這里就不一一列舉了。