1.認識 Python 語言

自 1991 年由吉多.范羅蘇姆(Guido van Rossum)研發並釋出後,陸續有許多程式設計者為 Python 提供了很多自行開發的模組,用來解決各式各樣的問題,因此學習Python 不僅可以支援大部分的應用,也能從廣大的 Python 社群中獲得豐富的資源,其中常見的應用有資料分析、科學運算、網站開發、人工智慧、機器人控制等。

Python 語言最大的優勢就是擁有極其豐富的外部函式庫支援,使的Python可以開發各式各樣有意思的專案。

Python 下載與安裝

  1. 進入Python官方網站(https://www.python.org/)
  2. 點擊[Download]
  3. 先勾選下方[Add Python 3.x to PATH],點擊[Install Now]安裝

撰寫第一個程式

使用IDLE撰寫程式

  1. 點選 [ 開始/ Python 3.9/ IDLE]
  2. 點選功能表 [ File/ New File]
  3. 在編輯器中輸入程式碼後,按[Ctrl連結文字+S]鍵儲存
  4. 在編輯器中,點選功能表 [ File/ Run]執行

2.Python程式設計_計算篇

題目1: 哈囉程式Hello

請設計一個程式,讓使用者輸入名字後,電腦會將名字呈現在畫面上與使用者打招呼。

圖片1.png

input及print應用

範例: 三數之和

本程式用到 int() 函數

圖片2.png

資料型態介紹

資料型態的轉換

自動轉換及強制轉換

算術運算符號

有6種

數字與字串的運算

加號可以用於字串組合

範例: 二數平均

請設計一個程式,讓使用者輸入兩個數字後,再呈現兩個數字的平均值。

範例: 計算學期成績程式

請設計一個程式,讓使用者輸入各項成績後,再將各項成績轉換為學期成績,並判斷學期成績是否及格?(其中,作業成績占 40%,測驗成績占 40%,平時成績占20%,學期成績 60 分為及格分數。)

關係運算符號

有6種分別為==、!=、>、<、>=、<=

選擇結構

有單向、雙向及多向

範例: 累加計算程式

請設計一個程式,讓使用者輸入數字 n 後,再計算 1 + 2 + 3 +⋯+ n 的值。

串列的資料結構

程式的資料用變數來儲存,但大量的資料可以用串列來簡化

串列的語法

串列名稱 = [元素1, 元素2,....]

串列的索引值由0開始,若是索引為負數-1則是倒數

range函數

語法為

# rane([起始值], 終止值, [,累加值])

for迴圈

語法

for 迴圈變數 in 串列:
  程式區域

範例: 密碼檢查程式

請設計一個電腦系統的密碼驗證機制,條件如下: 1 若第一次輸入密碼錯誤後,可再重複嘗試輸入兩次。 2 若三次密碼都錯誤,跳出使用者帳號被鎖定的訊息。

邏輯運算符號

有3種邏輯運算符號

while迴圈

不知要執行的次數, 只知繼續重複的條件

語法:

while 條件式:
  程式區域

範例: 任意數的所有因數程式

請設計一個程式,讓使用者輸入一個數字後,再找出該數字的所有因數。

串列進階用法

範例:抽獎程式

有三十人參加摸獎活動,分別有編號 1 ∼ 30 的摸獎券,透過電腦進行抽獎,從中抽出三位幸運兒頒發獎品。

3.Python程式設計專題: 1A2B 猜數字遊戲

請設計一個程式,先隨機產生 4 個 0 ∼ 9 之間,且不重複的數字當正確答案

圖片5.png

問題分析

我們可以將這個程式拆解為幾個部分如下:

  1. 如何讓程式隨機產生 4 個 0 ∼ 9 之間,且不重複的數字?
  2. 如何將答案串列變為字串?
  3. 使用者輸入數字後,如何判斷結果?
  4. 如何讓程式重複執行,直到使用者輸入的數字正確,或輸入錯誤的次數已達 8 次?
  5. 如何決定要輸出何種結果?

附錄: 海龜繪圖

4.延伸練習

練習實作題目

題目: 分組問題

教室裡,老師欲將同學們分組,1,2,3 號分在第 1 組,4,5,6 號分在第 2 組,依此類推。

算術運算子共 7 個: 加減乘除餘商指數

圖片3.png

解法思考

  1. 首先最直覺的想法就是除以3。 只是差了一點點,1, 2, 3 除以3 之後,分別變成 0.333, 0.666, 1。 但我們的目標是 1。只有一個 3號算出來可以在 第 1 組。

  2. 第二. 0.333, 0.666 怎麼調整到變成 1? 我們可以想到一個簡單的做法,無條件進位。

  3. 第三. 如何用算術運算子達到目的?

    • 問題是我們只學了 7 個算術運算子。沒有無條件進位。
    • 不過,我們有學到一個 // 除法取商,其實也就是無條件捨去。
    • 因此我們可以嘗試用 // 來達成無條件進位的效果。 假設 n 號,他的組別就是 (n + 2)//3 組

題目: 雞兔同籠

一個籠子裡面關了雞和兔子(雞有 2 隻腳,兔子有 4 隻腳,沒有例外)。已經知道了籠子裡面腳的總數,問籠子裡面至少有多少隻動物,至多有多少隻動物?

題目: 上學放學

某學校規定學生應在 7:30 上學,17:00 放學。給你一個時間(時:分)請問現在應該是上學還是放學?

題目: 韓信點兵

相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只看一下隊伍的排尾就知道總人數了。(已知總人數不小於10,不超過100。)

題目: 新冠病毒

新冠病毒複製快速,病毒每隔一小時數量就會變成原來的 3 倍。一旦達到 x 個病毒量就會被檢驗出陽性。

如果一開始接觸到了 n 個病毒。經過多少個小時會變陽性呢?

5.延伸專題: 用Python傳送Line訊息

請詳見此處 (江其勳老師提供)