載入中…
載入中…
從零開始學習 Python 程式語言,掌握變數、流程控制、函式與模組化設計,建立扎實的程式設計基礎。
每章講義 PDF 可免費線上預覽;範例程式碼與打包下載請進入各章節頁。
講義教材整理中,敬請期待。
請撰寫一個程式,讓使用者輸入身高(公分)與體重(公斤),計算並顯示 BMI 指數,並判斷體重狀態(過輕 / 正常 / 過重 / 肥胖)。
BMI = 體重(kg) / 身高(m)²,記得將身高從公分轉換成公尺。
# 計算 BMI 指數並判斷體重狀態
height_cm = float(input("請輸入身高(公分):"))
weight_kg = float(input("請輸入體重(公斤):"))
# 身高從公分轉換成公尺
height_m = height_cm / 100
bmi = weight_kg / (height_m ** 2)
# 依 BMI 範圍判斷體重狀態
if bmi < 18.5:
status = "過輕"
elif bmi < 24:
status = "正常"
elif bmi < 27:
status = "過重"
else:
status = "肥胖"
print(f"你的 BMI 是 {bmi:.2f},體重狀態:{status}")
使用巢狀迴圈印出完整的九九乘法表,每一行要對齊,格式如:1×1=1 1×2=2 ...
使用兩層 for 迴圈,外層控制被乘數,內層控制乘數,用 end="" 避免自動換行。
# 印出九九乘法表,每一行對齊
# 外層迴圈:被乘數 1~9
for i in range(1, 10):
# 內層迴圈:乘數 1~9
for j in range(1, 10):
# 用 :2 讓數字靠右對齊寬度 2,維持每欄整齊
print(f"{i}×{j}={i * j:<2}", end=" ")
# 每跑完一行(內層迴圈結束)才換行
print()
撰寫一個函式 calculator(a, op, b),支援加減乘除四種運算。需要處理除以零的錯誤情況,並讓使用者可以重複輸入直到輸入 q 退出。
用 try/except 處理 ZeroDivisionError,用 while 迴圈讓程式持續執行。
# 簡易計算機:支援加減乘除,可重複輸入直到輸入 q 退出
def calculator(a, op, b):
"""依運算符號 op 計算 a 與 b,回傳結果字串"""
try:
if op == "+":
return a + b
elif op == "-":
return a - b
elif op == "*":
return a * b
elif op == "/":
return a / b
else:
return "不支援的運算符號(僅支援 + - * /)"
except ZeroDivisionError:
return "錯誤:除數不可為 0"
while True:
raw = input("請輸入運算式(格式:數字 運算符 數字,輸入 q 離開):").strip()
if raw.lower() == "q":
print("再見!")
break
try:
a_str, op, b_str = raw.split()
a, b = float(a_str), float(b_str)
except ValueError:
print("輸入格式錯誤,請重新輸入,例如:3 + 5")
continue
result = calculator(a, op, b)
print(f"結果:{result}")
請撰寫一個程式,讓使用者輸入一個秒數,換算成「時 分 秒」格式輸出,例如輸入 3725 秒,輸出「1 時 2 分 5 秒」。
先用整數除法 // 3600 算出小時,用 % 3600 拿到扣掉小時後剩下的秒數;再對剩下的秒數做一次同樣的 // 60 與 % 60,分別算出分鐘與秒數。
# 秒數轉換成「時 分 秒」
total_seconds = int(input("請輸入秒數:"))
hours = total_seconds // 3600
remaining = total_seconds % 3600
minutes = remaining // 60
seconds = remaining % 60
print(f"{hours} 時 {minutes} 分 {seconds} 秒")