1. 程式人生 > >Python程式執行原理(科普)

Python程式執行原理(科普)

程式執行原理(科普)

目標

  • 計算機中的 三大件
  • 程式執行的原理
  • 程式的作用

01. 計算機中的三大件

計算機中包含有較多的硬體,但是一個程式要執行,有 三個 核心的硬體,分別是:

  1. CPU
    • 中央處理器,是一塊超大規模的積體電路
    • 負責 處理資料計算
  2. 記憶體
    • 臨時 儲存資料(斷電之後,資料會消失)
    • 速度快
    • 空間小(單位價格高)
  3. 硬碟
    • 永久 儲存資料
    • 速度慢
    • 空間大(單位價格低)
CPU 記憶體 硬碟
在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

思考題

  1. 計算機中哪一個硬體裝置負責執行程式?
    • CPU
  2. 記憶體 的速度快還是 硬碟 的速度快?
    • 記憶體
  3. 我們的程式是安裝在記憶體中的,還是安裝在硬碟中的?
    • 硬碟
  4. 我買了一個記憶體條,有 500G 的空間!!!,這句話對嗎?
    • 不對,記憶體條通常只有 4G / 8G / 16G / 32G
  5. 計算機關機之後,記憶體中的資料都會消失,這句話對嗎?
    • 正確

02. 程式執行的原理

在這裡插入圖片描述

  1. 程式 執行之前,程式是 儲存在硬碟 中的
  2. 當要執行一個程式時
    • 作業系統會首先讓 CPU 把程式複製到 記憶體
    • CPU 執行 記憶體 中的 程式程式碼

程式要執行,首先要被載入到記憶體

2.1 Python 程式執行原理

在這裡插入圖片描述

  1. 作業系統會首先讓 CPUPython 直譯器 的程式複製到 記憶體
  2. Python 直譯器 根據語法規則,從上向下CPU
    翻譯 Python 程式中的程式碼
  3. CPU 負責執行翻譯完成的程式碼

Python 的直譯器有多大?

  • 執行以下終端命令可以檢視 Python 直譯器的大小
# 1. 確認直譯器所在位置
$ which python

# 2. 檢視 python 檔案大小(只是一個軟連結)
$ ls -lh /usr/bin/python

# 3. 檢視具體檔案大小
$ ls -lh /usr/bin/python2.7

提示:建立 軟連結 的目的,是為了方便使用者不用記住使用的直譯器是 哪一個具體版本

03. 程式的作用

程式就是 用來處理資料 的!

  • 新聞軟體 提供的 新聞內容、評論…… 是資料
  • 電商軟體 提供的 商品資訊、配送資訊…… 是資料
  • 運動類軟體 提供的 運動資料…… 是資料
  • 地圖類軟體 提供的 地圖資訊、定位資訊、車輛資訊…… 是資料
  • 即時通訊軟體 提供的 聊天資訊、好友資訊…… 是資料
  • ……

3.1 思考 QQ 程式的啟動過程

  1. QQ 在執行之前,是儲存在 硬碟 中的
  2. 執行之後,QQ 程式就會被載入到 記憶體 中了

在這裡插入圖片描述

3.2 思考 QQ 程式的 登入 過程

  1. 讀取使用者輸入的 QQ 號碼
  2. 讀取使用者輸入的 QQ 密碼
  3. QQ 號碼QQ 密碼 傳送給騰訊的伺服器,等待伺服器確認使用者資訊

思考 1

在 QQ 這個程式將 QQ 號碼QQ 密碼 傳送給伺服器之前,是否需要先儲存一下 QQ 號碼 和 密碼?

答案

肯定需要!—— 否則 QQ 這個程式就不知道把什麼內容傳送給伺服器了!

思考 2

QQ 這個程式把 QQ 號碼QQ 密碼 儲存在哪裡?

答案

儲存在 記憶體 中,因為 QQ 程式自己就在記憶體中

思考 3

QQ 這個程式是怎麼儲存使用者的 QQ 號碼QQ 密碼 的?

答案

  1. 在記憶體中為 QQ 號碼QQ 密碼 各自分配一塊空間
    • 在 QQ 程式結束之前,這兩塊空間是由 QQ 程式負責管理的,其他任何程式都不允許使用
    • 在 QQ 自己使用完成之前,這兩塊空間始終都只負責儲存 QQ 號碼QQ 密碼
  2. 使用一個 別名 標記 QQ 號碼QQ 密碼 在記憶體中的位置

在這裡插入圖片描述

  • 在程式內部,為 QQ 號碼QQ 密碼 在記憶體中分配的空間就叫做 變數
  • 程式就是用來處理資料的,而變數就是用來儲存資料的