開始寫程式前,先學習使用文字描述、流程圖


在真正動手寫程式前,先來寫寫文字描述

舉例來說,我們今天希望製作一個判斷是否年紀已經可以投票(假設 20 歲(含)以上可以投票)的小程式。你會怎麼開始?

試著用文字來描述程式的需求:

  1. 請使用者輸入年紀 => 接收使用者輸入 input
  2. 判斷是否可以投票(若使用者輸入的年紀大於等於 20 歲,程式會印出 恭喜你,你可以投票!,若年紀小於則印出 sorry, 你還不能投票呦!)=> 即為程式語言中的條件判斷 if...else...
  3. 結束程式

透過清楚明確的有限步驟,我們可以解決我們想解決的問題並產出我們要的輸出結果。

畫畫流程圖(Flow Chart),讓思路更清晰

除了文字描述外,我們還可以透過畫圖的方式來分析程式需求,讓思路更清晰,以利我們撰寫程式。

一般來說流程圖是由上往下執行,有開始也有結束,常見的圖示如下:

  1. 橢圓形:代表開始結束
  2. 長方形:代表執行、處理過程
  3. 菱形:代表條件判斷,做決策
  4. 平行四邊形:代表輸入/輸出
  5. 箭頭線:代表流程執行順序
  6. 圓形:代表連結多個來源的箭頭線

投票年齡判斷流程圖範例:

開始把文字描述、流程圖轉成真正的程式碼

現在我們把文字邏輯流程轉成 Python 程式碼。語法不懂沒關係,我們之後會介紹,先大概了解一下整個流程:

"""
我是程式碼註解:
input 會讓使用者輸入值(請輸入你的年紀為提示字元),
int() 會把使用者輸入從文字字串(string)轉為 integer 整數(input 函式取得的值為文字字串)。
age 則是變數,對應到使用者輸入的值。使用 age 就可以取出對應的年齡值
"""

# 等號左邊代表變數,可以想成變數是用來暫存了一些資料方便之後程式使用
# input() 代表接受使用者輸入的敘述式,可以接收使用者於終端機輸入,回傳為字串資料型別
raw_age = input('請輸入你的年紀')
# int() 代表可以把傳入的參數轉為整數資料型別 type
age = int(raw_age)

# 判斷是否年紀大於等於 20 歲(整數),若有則印出 恭喜你,你可以投票!若否則印出 sorry, 你還不能投票呦

# 條件判斷,決定程式要執行到哪個區塊
if age >= 20:
# 當條件符合時執行"縮排內的區塊"
    print('恭喜你,你可以投票!')
# 當條件符合時執行縮排內的區塊
else:
    print('sorry, 你還不能投票呦!')

在 Python 中使用 # 為單行註解(註解是給人看,程式不會執行),事實上軟體工程師和程式設計師在工作時有很大一部份時間在溝通和閱讀程式碼上,實際花在寫程式的時間並不如一般人想像的多。

若是多行註解為使用 """

"""
大家好
我是
多行註解
"""

以上判斷年齡的程式若是使用 C 語言撰寫的話會是長這樣:

// 引入標準函式庫
#include <stdio.h>

int main(void) {
    // 宣告變數
    int age;
    // 註解:接收使用者輸入
    scanf("%d", &age);

    if (age >= 20) {
      printf("恭喜你,你可以投票!");
    } else {
      printf("sorry, 你還不能投票呦!");
    }
    // 回傳 0 代表程式沒有錯誤
    return 0;
}

有沒有感覺 Python 程式語法很簡潔好閱讀呢?

處理符號和連結符號範例

以下為當透過使用者輸入計算電費,當電費度數大於等於 50 每度電 5 塊,當電費度數小於 50 每度電 4 塊,最後印出電費的範例。

可以看到矩形內部為執行程式運算處理流程:

而有時候繪製大型的流程圖時,常常因為版面不夠需要換頁或者是換地方繪製,透過連結符號可以延續之前的流程:

範例程式碼:

N = int(input('請輸入度數'))

if N >= 50:
    P = N * 5
else:
    P = N * 4

print(P)

接下來打開 repl.it 線上編輯器自己動手試試看吧!



問題討論區
加入問題討論
作業任務區
提交作業任務