1.1 Python語言概述
阿新 • • 發佈:2018-12-31
1. 演進中的程式語言
1.1 計算機技術演進過程
- 計算機系統結構時代(1946-1981)-> 解決計算效能問題 -> C語言
- 網路和視窗時代(1981-2008)-> 解決計算互動問題 -> Java HTML等
- 複雜資訊系統時代(2008-2016)-> 解決資料週期問題 -> JS/Java/C++/Python…
- 人工智慧時代(2016至今)-> 解決人類需求問題 -> Python
1.2 各程式語言的歷史使命
程式語言 | 學習內容 | 語言本質 | 解決問題 | 使用崗位 |
---|---|---|---|---|
C | 指標、記憶體、資料型別 | 理解計算機系統結構 | 效能 | 系統底層開發 |
Java | 物件、跨平臺、執行時 | 理解主客體關係 | 跨平臺 | 網路後臺及APP開發 |
C++ | 物件、多型、繼承 | 理解主客體關係 | 大規模程式 | 應用類特定方向 |
VB/VC | 物件、按鈕、文字框 | 理解互動邏輯 | 桌面互動 | 不確定 |
Python | 程式設計邏輯、第三方庫 | 理解問題求解 | 各類問題 | 大資料/人工智慧等 |
1.3 計算條件
- 計算機效能已經不是解決一般問題的瓶頸
- 大資料、雲端計算、物聯網、資訊保安、人工智慧等需求爆發
- 計算領域核心矛盾不再是效能而轉化為產量、效率和方法的不足
1.4 Python語言
- 通用語言
- 指令碼語言
- 膠水語言
- 跨平臺語言
- 多模型語言
2. 編譯和解釋
程式語言的執行方式
(1)編譯執行: 將原始碼一次性轉換成目的碼的過程
- 類似英語翻譯
- 靜態語言:C、C++、Java(不好說算是編譯還是解釋)…
- 編譯過程沒有時間限制,優化更充分,執行速度更快
- 編譯後程序可以在同系列系統中直接執行,不需要執行環境
(2)解釋執行:將原始碼逐條轉換成目的碼同時逐條執行的過程
- 類似同聲傳譯
- 指令碼語言:PHP、JavaScript、HTML、Python…
- 執行過程需要原始碼,程式維護更靈活
- 通過在不同系統中配置執行環境,可以實現原始碼的跨平臺執行
3. Python語言特點
Python語言特點:語法簡潔
- 1.沒有分號、沒有函式約束、沒有大括號、沒有begin/end
- 2.沒有型別宣告、沒有變數定義、沒有指標
# 計算並輸出1到100整數的和
s = 0
for i in range(1,101):
s += i
print(s)
# 計算並輸出n的階乘
def fact(n):
if n== 1:
return 1
return n*fact(n-1)
print(fact(10))
Python語言特點:開源生態
- 1.超過14萬個第三方庫免費使用
- 2.避免重複造輪子的先進理念。
- 3.底層可封裝C/C++等語言的程式碼,站在巨人肩膀上程式設計
# 影象的輪廓獲取
from PIL import Image
from PIL import ImageFilter
im = Image.open('Big6.jpg')
om = im.filter(ImageFilter.CONTOUR)
om.save('Big6Contour.jpg')
工具決定思維:關注工具變革的力量
4. 計算生態與超級語言
4.1 計算生態的歷史
計算生態:自由軟體時代
- 從開源運動說起
- Richard Stallman啟動GNU專案(1983)
- GNU通用許可協議誕生(1989)
- Linus Torvalds釋出了Linux核心(1991)
- 網景瀏覽器開源,產生了Mozilla(1998)
計算生態:計算生態深入演化
- 1983,Richard Stallman大教堂模式 vs. 1991,Linus Torvalds集市模式
4.2 計算生態的定義
- 開源思想深入演化和發展,形成了計算生態
- 計算生態以開源專案為組織形式,充分利用“共識原則”和“社會利他”組織人員,在競爭發展、相互依存和迅速更迭中完成資訊科技的更新換代,形成了技術的自我演化路徑。
4.3 計算生態的特點
- 沒有頂層設計、以功能為單位、具備三個特點
- 1.競爭發展
- 2.相互依存
- 3.迅速更迭
4.4 Python計算生態
- 1.以開源專案為形式,提供了超過14萬個第三方庫
- 2.開源專案的建設經過野蠻生長和自然選擇,高質量庫眾多
- 3.第三方庫之間相互關聯使用,依存發展或逐級封裝
- 4.Python社群龐大,新技術更迭迅速,已經成為計算生態主流
4.5 程式語言的演進
- 組合語言(CPU相關)
- 高階語言(CPU無關)
- 超級語言(計算生態)
5. 例項1:溫度轉換
程式需求
- 兩種溫度體系的轉換:攝氏度&華氏度
- 攝氏度:以1標準大氣壓下水的結冰點為0度,沸點為100度,將溫度進行等分刻畫
- 華氏度:以1標準大氣壓下水的結冰點為32度,沸點為212度,將溫度進行等分刻畫
- 輸入:帶有攝氏或華氏溫度標誌的溫度值:如82F或82f表示華氏82度
- 輸出:帶有華氏或攝氏溫度標誌的溫度值:如28C或28c表示攝氏28度
- 輸入輸出要求:保留小數點後兩位
# TempConvert.py
TempStr = input("請輸入帶有符號的溫度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) -32)/1.8
print("轉換後的溫度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("轉換後的溫度是{:.2f}F".format(F))
else:
print("輸入格式錯誤")