文章

Python-2-基本概念—看一本書要先讀大綱,程式亦然

零、前言

在一開始看到程式碼時,你會不會有以下疑問?

  • 我該怎麼讀程式碼,為什麼有時候感覺要跳著看?
  • 為什麼有些程式前面會有空格,有些沒有,有些則有很多空格?
  • 程式到底從哪邊開始執行?

這篇文章就會來解釋一下,在閱讀程式碼時我們該怎麼抓住這段程式的精隨大意,如此就不會感到慌張不知所措了!

一、Python 程式碼的架構說明

剛拿到一段程式碼,我們大致可以分成幾種類別來閱讀:

  1. 套件引用區: 代表我們在這段程式中需要使用那些第三方或者外掛的工具。
  2. 功能定義區: Function的定義通常會放在程式碼的前面,因為必須先定義,後面程式碼在引用時,電腦才能找得到。
  3. 主程式起始位置: 整個程式開始運作的起點,以下廚做比喻,前面「套件引用」、「功能定義」可以想像成是煮菜前的備料,主程式起始比較像是「開始煮菜」的過程。
  4. 邏輯區塊: Python 中劃分程式區塊主要是透過「縮排」來進行,也就是看起來像是「空格」的東西,跟文章有分段落一樣,程式也有分不同區塊,縮排錯誤就會導致程式邏輯直接錯誤,因此非常重要。

    螢幕擷取畫面 2024-07-23 083712.jpg

  5. 註解說明: 看到 # 開頭的文字敘述就是註解,本身不屬於程式的一部分,

    1
    
     # 這部分是註解,程式讀到這邊會自動忽略
    

二、案例說明

這邊先來看一個比較生活化的案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 引用「中式食譜」這個套件裡面的「燒餅豆漿類」的子菜單
from 中式食譜 import 燒餅豆漿類菜單

def 早餐製作(num):
    # 從菜單取得料理
    soybean_milk = 燒餅豆漿類菜單.豆漿
    raydish_cake = 燒餅豆漿類菜單.蘿蔔糕
    clay_oven_roll = 燒餅豆漿類菜單.燒餅
    
    # 製作早餐
    print(f"製作 {num} 份早餐!")
    print(f"製作 {soybean_milk}") # 豆漿
    print(f"製作 {raydish_cake}") # 蘿蔔糕
    print(f"製作 {clay_oven_roll}") # 燒餅

def 起床(Name):
    print(f"{Name} 起床了!")

# 主程式從這邊開始
family_people = 3
now = "morning"

if now == "morning":
    # 媽媽要起床
    起床("媽媽")
    # 準備家庭人數分量的早餐
    早餐製作(family_people)
else:
    print("現在不是早上")
    

# ====================以下是程式輸出結果=======================
# 媽媽起床了!
# 製作 3 份早餐!
# 製作 豆漿
# 製作 蘿蔔糕
# 製作 燒餅

ㄚㄚㄚ,頭開始痛了嗎?別緊張,下面來解析一下程式碼的結構:

1721202839580.jpg

  1. 引用套件:
    1. 在不引入任何套件情況下,Python 只會有基本功能,因此需要引入特殊套件才可以達成特殊目的。
    2. 可以想像成 Python 就像是自己的雙手,雖然靈活但能做的事有限,要做一些比較複雜的事情時,就需要使用工具箱內的工具。
  2. Function 定義區塊:
    1. 這邊定義了兩個 Function,「做早餐」跟「起床」,他們背後都代表著一連串的指令,這些指令透過縮排,代表存在於所屬 Function 的管轄範圍內。
  3. 主程式邏輯區塊:
    1. 前面的程式碼都只是定義好我們使用的工具跟功能,這邊才是真正程式開始執行的區塊。
    2. 閱讀程式碼時,先找到主程式的開頭,再由上而下依序閱讀,就會比較能順著程式邏輯來思考。

三、結論

讀程式碼就跟讀書一樣,都是有技巧的,如果都是從頭開始一字一句看到尾,會很容易事倍功半,先抓住大綱以及大致區塊,再逐一做解析,對於程式的理解與閱讀,效率上就會好非常多。

本文章以 CC BY 4.0 授權