建議年級:初中至高中
備註:普通話語音,可選用中文字幕
如使用電腦進行學習,並可進行程式安裝,請觀看影片 #01 基本簡介與安裝 。如不能,可使用以下網址中的 Python 網上編譯器進行測試及練習。
Python 網上編譯器:https://www.programiz.com/python-programming/online-compiler/
圖中左方的是程式編寫的介面,是我們輸入程式碼的地方。當我們完成程式碼,按上方的 "Run" 按鈕便可以執行程式。
而右方則是程式執行的介面,當程式執行時輸出的結果及讓使用者輸入資料也是在這個介面進行的。
在 python 中,可以利用 print( ) 指令輸出簡單的字詞。例如 print("hello world"),便能在執行介面輸出 hello world 的字樣。
而相對,使用 input() 指令便能讓使用者輸入資料。例如 input("please input a number: "),便能在介面上出現 please input a number: 的字樣,並提示使用者輸入指令。
請觀看影片 #02 變數與資料型態 (觀看00:00至02:36) ,然後進行以下練習/活動:
練習/活動:1+1=2 ?
於「程式編寫介面」輸入以下程式碼(可直接複製及貼上程式碼),請先估計程式運行的結果,然後執行程式碼,看看你估的結果是否正確。
FirstNumber=input("請輸入一個個位數: ")
SecondNumber=input("請再輸入一個個位數: ")
print(FirstNumber,"+",SecondNumber,"=", FirstNumber+SecondNumber)
請觀看影片 #02 變數與資料型態 (觀看02:36至08:34),然後完成以下練習/活動:
練習/活動:乘法計算器
要求使用者輸入他的姓名、輸入兩個數字,並以下列句式顯示兩個數字的積。(參考答案)
提示: 先向使用者要求輸入姓名及兩個數字,進行運算後,輸出以下句子當中姓名為使用者輸入的名字,而兩個數字的積為兩個數字相乘的結果。
Hi, 姓名. The product of two numbers is 兩個數字的積
練習/活動:True Or False
於「程式編寫介面」輸入以下程式碼(可直接複製及貼上程式碼),請先估計程式運行的結果,然後執行程式碼,看看你估的結果是否正確。
A = 10
B = 20
C = 30
print(A >= B and C > B)
print(A == B or B != C)
print( not ( A > B or B < C) and C == 30 )
請觀看影片 #03 IF 條件判斷式 (觀看04:51至07:14) ,然後完成以下練習/活動:
練習/活動:數字競猜遊戲
你要編寫一個數字競猜遊戲,程式碼需要做到以下要求。 (參考答案)
你挑選一個兩位正數作為遊戲的答案,並把它設為變數 Answer 的值。
然後要求使用者輸入一個兩位正數。
如果輸入的數字比 Answer 大,則顯示 "Please pick a smaller number"。
如果輸入的數字比 Answer 小,則顯示 "Please pick a larger number"。
如果輸入的數字等於 Answer ,則顯示" You are right! The number is Answer 的值"
提示: 你可以參考片段中有關條件判斷語法 Elif 的用法及例子。
練習/活動:apple? orange? or something else
於「程式編寫介面」輸入以下程式碼(可直接複製及貼上程式碼),請先估計程式運行的結果,然後執行程式碼,看看你估的結果是否正確。
MyList01 = ["apple", "orange", "lemon", "pear", "grapes"]
MyList02 = list("東風夜放花千樹,更吹落、星如雨。")
MyList03 = "2023/10/24".split("/")
print(MyList01[3])
print(MyList01[-3])
print(MyList01[1:4])
print(MyList01[:2])
print(MyList01[-2:])
print("".join(MyList02[4:7])+"*".join(MyList02[-4:]))
print(MyList03[0] == 2023)
修改、新增、刪除及查詢清單
請觀看影片 #04 List 清單(串列) (觀看02:50至09:13),然後完成以下練習。
練習/活動:微型學生積分處理系統
以下是片段中有關學生積分處理的程式碼的英文版本:
test_list = ["peter",76, "mary", 48, "john", 65]
action = input("What do you want? (A) query, (B) add, (C) del, (D) modify \n").upper()
if action == "A":
name = input("Input student name:\n")
if name not in test_list:
print("No such person")
else:
position = test_list.index(name)
print(f"{name}'s mark is {test_list[position+1]}")
elif action == "B":
new_value = input("Please input the name and the marks (seprate with /):\n")
test_list.extend(new_value.split("/"))
print("New record added")
print(f"There are total {int(len(test_list)/2)} students in the list")
elif action == "C":
name = input("Student name to be deleted:\n")
position = test_list.index(name)
test_list.pop(position)
test_list.pop(position)
print(test_list)
elif action == "D":
name = input("Student name to be modify:\n")
marks = input("Input new marks:\n")
position = test_list.index(name)
test_list[position+1] = marks
print(test_list)
當這個程式進行 刪除(C) 及 修改(D) 的動作時,若使用者輸入了一個清單中不存在的名字,程式便會產生錯誤。現在請您修改程式,讓使用者修改/刪除一個不在清單中的名字時,會顯時警告字眼。(參考答案)
練習/活動:Numbers meet Letters
於「程式編寫介面」輸入以下程式碼(可直接複製及貼上程式碼),請先估計程式中每個loop的運行的結果,然後執行程式碼,看看你估的結果是否正確。
numbers = [1, 3, 4, 7, 11, 18, 29, 47]
letters = ["A", "C", "D", "G", "K", "R"]
# loop1
print("loop1 result:")
for a in numbers:
if a % 2 == 0:
for b in letters:
print(str(a)+b)
else:
continue
# loop2
print("loop2 result:")
for a in numbers:
if a % 2 == 0:
for b in letters:
print(str(a)+b)
else:
break
# loop3
print("loop3 result:")
for a in numbers:
for b in letters:
if a % 2 == 0 and not(b in ["A", "E", "I", "O", "U"]):
print(str(a)+b)
Range 語法與 For Loop
請觀看影片 #05 For Loop (迴圈) (觀看03:50至05:55),然後完成以下練習/活動。
練習/活動:Word Guessing Game
試利用 for loop 完成下方的文字競猜遊戲的程式碼(參考答案)。遊戲的運作方式如下:
設定答案。
使用者需要輸入猜測的英文字母。
若答案有此字母,則以*號代替未猜中的字母並輸出。例如,答案為「apple」,猜「p」後,輸出「*pp**」。
若10次內猜出答案,則勝;否則,敗。
建議年級:初中至高中
備註:普通話語音,可選用中文字幕
請觀看影片#06 While Loop (迴圈) (觀看00:00至02:35),然後完成以下練習。
練習/活動:Face Off - rewrite the loops
於「程式編寫介面」輸入並執行以下程式碼(可直接複製及貼上程式碼),記下結果。然後,以 for loop 改寫所有迴圈,使程式執行後能輸出同樣的結果 。(參考答案)
numbers = [1, 3, 4, 7, 11, 18, 29, 47]
letters = ["A", "C", "D", "G", "H", "K"]
# loop1
print("loop1 result:")
i = 0
while i < len(numbers):
print(numbers[i])
i += 2
# loop2
print("loop2 result:")
i = 0
while True:
if letters[i] == "K":
print(f"K is found in the {i+1} th position of the list")
break
elif i < (len(letters) - 1):
i += 1
else:
print("There is no letter K in the list.")
break
While loop 遊戲範例
請觀看影片 #06 While Loop (迴圈) (觀看02:36至06:51),然後完成以下練習/活動。
練習/活動:Word Guessing Game
試利用 While loop 重寫上一個練習中的文字競猜遊戲的程式碼(參考答案)。遊戲的運作方式如下:
設定答案。
使用者需要輸入猜測的英文字母。
若答案有此字母,則以*號代替未猜中的字母並輸出。例如,答案為「apple」,猜「p」後,輸出「*pp**」。
若10次內猜出答案,則勝;否則,敗。
建議年級:初中至高中
備註:普通話語音,可選用中文字幕
請觀看影片 #07 Function (函式),然後完成以下練習。
練習一
按照影片中由 05:26 開始的片段完成當中的程式,當中的中文部分可以改為英文以便利輸入。
練習二
片段中的程式再進行除法時,除數若為 0 時會出現錯誤。試修改有關程式,讓使用者輸入的除數為 0 時,會顯時警告字眼。(參考答案)
Credit: 網頁內使用的短片為 PAPAYA 電腦教室 的免費教學短片