第四章 - 資訊科技核心D:計算思維與編程
探索Python程式設計的四個主要部分
從偽代碼到Python、IDE設置和Hello World
變數、數據類型、運算符、輸入輸出和函數
條件語句、布爾邏輯和決策
for循環、while循環和重複控制
Python、C++和Java等程式語言讓我們能與電腦溝通。每種語言都有其獨特特性,但Python以其簡潔性和易用性著稱。
整合開發環境(IDE)是一個具有代碼編輯器和程式設計相關功能的應用程式。建議初學者使用Thonny(版本3.3.10或更高)。
最簡單的Python程式,用於熟悉該語言:
print("Hello World!")
在Python中,print()字面意思是「輸出」。引號內的文字會原樣顯示。
變數是記憶體中的命名儲存位置。Python有四種常見的數據類型:
內建函數可以改變數據類型:
+ 加法 - 減法 * 乘法 / 除法(返回浮點數) // 整數除法(商) % 取模(餘數) ** 指數
常見操作的簡寫:
y += 2 # 等同於:y = y + 2 y -= 3 # 等同於:y = y - 3 y *= 4 # 等同於:y = y * 4 y /= 5 # 等同於:y = y / 5
print()顯示輸出,input()接收用戶輸入(總是返回字串):
name = input("Please enter your name: ")
print("Hi", name)
導入math函數庫以訪問高級函數:
import math y = math.sqrt(16) # 平方根:4.0 y = math.sin(x) # 正弦(x為弧度) y = math.cos(x) # 餘弦 y = math.exp(10) # 自然指數(e^10)
import random y = random.random() # 隨機浮點數:0 <= y < 1 y = random.uniform(1, 10) # 隨機浮點數:1 <= y < 10 y = random.randint(1, 10) # 隨機整數:1 <= y <= 10
用於比較值並返回True或False:
== 等於 != 不等於 < 小於 <= 小於或等於 > 大於 >= 大於或等於
if、elif和else根據條件控制程式流程:
score = int(input("Enter your score: "))
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
elif score >= 60:
print("Grade: D")
else:
print("Grade: F")
age = 25
if age >= 18 and age < 65:
print("Working age")
條件可以嵌套在其他條件內以實現複雜邏輯:
if temperature > 30:
if humidity > 80:
print("Hot and humid")
else:
print("Hot and dry")
重複執行代碼指定次數:
# 打印1到5 for i in range(1, 6): print(i) # range(起始, 結束, 步長) for i in range(2, 10, 3): print(i) # 輸出:2, 5, 8
當條件為True時重複執行代碼:
x = 5
while x > 0:
print(x)
x -= 2
# 輸出:5, 3, 1
Python沒有內建的do-while循環,但我們可以模擬:
while True:
password = input("Enter password: ")
if password == "secret":
break
print("Access granted")
實用的Python程式碼演示
print("Hello World!")
length = 12 print(length) print(type(length)) # <class 'int'> length = 12.0 print(length) print(type(length)) # <class 'float'> length = "The length is twelve" print(length) print(type(length)) # <class 'str'>
a = 12
b = a + 10
c = b % 10
d = b**c
print(a/b)
print(type(a/b)) # <class 'float'>
name = "David"
mark = 89
print("Hi", name, "your mark is", mark)
# 輸出:Hi David your mark is 89
print("Print something \*special\*")
# 輸出:Print something *special*
score = int(input("Enter your score: "))
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print("Your grade is:", grade)
# 計算1到10的總和 total = 0 for i in range(1, 11): total += i print("Sum:", total) # 輸出:Sum: 55
password = ""
while password != "secret":
password = input("Enter password: ")
if password != "secret":
print("Incorrect password. Try again.")
print("Access granted!")
關鍵比較與重要區別
| 偽代碼 | Python | 註釋 |
|---|---|---|
| variable ← expression | variable = expression | 賦值使用= |
| Output message | print(message) | print()函數 |
| Input variable | variable = input() | input()總是返回字串 |
| if condition then | if condition: | 需要冒號,主體需縮排 |
| for i ← 1 to 10 | for i in range(1, 11): | range(1, 11)表示1到10 |
| while condition | while condition: | 需要冒號和縮排 |
| 操作 | 偽代碼 | Python |
|---|---|---|
| 等於 | = | == |
| 不等於 | ≠ | != |
| 大於 | > | > |
| 小於 | < | < |
| 大於或等於 | ≥ | >= |
| 小於或等於 | ≤ | <= |
| 操作 | 偽代碼 | Python | 示例 |
|---|---|---|---|
| 加法 | + | + | y = 1 + 2 |
| 減法 | - | - | y = 5 - 2 |
| 乘法 | × or * | * | y = 2 * 3 |
| 除法 | / or ÷ | / | y = 10 / 3 → 3.33333 |
| 整數除法 | DIV | // | y = 10 // 3 → 3 |
| 取模 | MOD | % | y = 10 % 3 → 1 |
| 指數 | ^ | ** | y = 2 ** 3 → 8 |
| 方面 | for 循環 | while 循環 |
|---|---|---|
| 何時使用 | 迭代次數已知 | 基於條件重複 |
| 語法 | for i in range(1, 11): | while x > 0: |
| 示例 | 打印1到10 | 輸入驗證 |
| 計數變數 | 自動(i) | 需手動更新 |
# 1. 賦值(=)與比較(==) x = 5 # 將5賦值給x x == 5 # 檢查x是否等於5(返回True/False) # 2. 縮排在Python中至關重要 if x > 0: print("Positive") # 必須縮排 # 3. input()返回字串 age = input("Enter age: ") # age是字串! age = int(input("Enter age: ")) # 轉換為整數 # 4. 除法運算符 10 / 3 # 返回3.33333(浮點數) 10 // 3 # 返回3(整數商) 10 % 3 # 返回1(餘數)
通過12道題測試你的Python知識
print('name')輸出字面字串'name',而不是變數值。要打印變數,使用print(name)不帶引號。
input()總是返回字串(str)。要將其用作數字,必須使用int()或float()進行轉換。
//運算符執行整數除法,只返回商(3),丟棄餘數。
%運算符(取模)返回除法的餘數。10 ÷ 3 = 3 餘 1。
==是相等比較運算符。=用於賦值,!=表示「不等於」,<=表示「小於或等於」。
range(1,4)生成從1到(但不包括)4的數字,因此輸出1、2、3。
int()將浮點數截斷(向下取整)為整數。12.9變為12,而不是13。
Python的if語句在末尾需要冒號(:),並且主體必須縮排。
range(起始, 結束, 步長)從2生成到10(不包括)步長為3的數字:2、5、8。
elif(else if)允許按順序檢查多個條件。它用於多路選擇。
import random載入random函數庫,該庫提供random()、uniform()和randint()等函數。
循環打印x(5、3、1)並每次減2。當x變為-1時,條件x>0為假,循環停止。
點擊卡片翻轉並複習關鍵概念
通過編程練習應用你的知識
編寫一個Python程式來計算矩形的面積。給定長度=20,寬度=15,計算並打印面積。
length = 20
width = 15
area = length * width
print(area) # 輸出:300
解釋:將長度乘以寬度得到面積。結果為300平方單位。
編寫一個Python程式將秒轉換為分鐘和秒。例如,輸入125秒應輸出「2分鐘5秒」。
total_seconds = 125
minutes = total_seconds // 60
seconds = total_seconds % 60
print(minutes, "minute(s) and", seconds, "second(s)")
# 輸出:2 minute(s) and 5 second(s)
解釋:使用//進行整數除法得到分鐘數,使用%得到餘數(秒數)。
編寫一個Python程式來判斷BMI健康狀態。計算BMI = 體重 / (身高^2),然後分類:BMI < 18.5(過輕)、18.5 <= BMI < 24(正常)、24 <= BMI < 27(過重)、BMI >= 27(肥胖)。
height = float(input("Enter your height in meters: "))
weight = float(input("Enter your weight in kg: "))
bmi = weight / (height ** 2)
if bmi < 18.5:
status = "Underweight"
elif bmi < 24:
status = "Normal"
elif bmi < 27:
status = "Overweight"
else:
status = "Obese"
print("Your BMI is", round(bmi, 2))
print("Status:", status)
解釋:使用elif處理多個條件。**運算符計算身高的平方。round()將BMI顯示為2位小數。
編寫一個Python程式計算總和:Σ(i) 從i=1到100(1到100的數字總和)。
total = 0
for i in range(1, 101):
total += i
print("Sum from 1 to 100:", total)
# 輸出:Sum from 1 to 100: 5050
解釋:將total初始化為0,然後使用range(1, 101)的for循環將1到100的每個數字相加。+=運算符累加到總和。
編寫一個Python抽獎程式。使用random.randint(1, 100)生成1到100之間的隨機整數,如果數字大於90則打印「恭喜!你中獎了!」,否則打印「下次好運!」。
import random
lucky_number = random.randint(1, 100)
print("Your lucky number is:", lucky_number)
if lucky_number > 90:
print("Congratulations! You won!")
else:
print("Better luck next time!")
解釋:首先導入random函數庫。random.randint(1, 100)生成1到100(包含)的隨機整數。使用if語句檢查數字是否大於90。