1. 程式人生 > >1.1 Python語言概述

1.1 Python語言概述

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("輸入格式錯誤")