選擇題
複習選擇題
測試你對基礎語法的理解程度!
按 ↓ 開始作答
選擇題 1 / 12
下列哪一行可以讀取整數?
x = input("數字:")
x = int("數字:")
x = int(input("數字:"))
x = str(input("數字:"))
選擇題 2 / 12
17 // 5 的結果是?
3.4
3
2
4
選擇題 3 / 12
17 % 5 的結果是?
2
3
3.4
12
選擇題 4 / 12
下列程式碼的輸出是什麼?
x = "3"
y = "5"
print(x + y)
8
35
錯誤
"3" + "5"
選擇題 5 / 12
print(type(3.14)) 會輸出?
<class 'int'>
<class 'str'>
<class 'float'>
<class 'double'>
選擇題 6 / 12
下列程式碼的輸出是什麼?
for i in range(3):
print(i, end=" ")
0 1 2
1 2 3
0 1 2 3
3
選擇題 7 / 12
下列哪個是正確的 f-string?
print("Hello, {name}")
print(f"Hello, name")
print(f"Hello, {name}")
print("Hello, " + {name})
選擇題 8 / 12
下列程式碼印出幾次 "Hi"?
count = 0
while count < 5:
print("Hi")
count += 1
4 次
6 次
5 次
無限迴圈
選擇題 9 / 12
下列程式碼的輸出是什麼?
for i in range(1, 6):
if i == 3:
break
print(i, end=" ")
1 2
1 2 3
1 2 4 5
1 2 3 4 5
選擇題 10 / 12
下列程式碼的輸出是什麼?
for i in range(1, 6):
if i == 3:
continue
print(i, end=" ")
1 2
1 2 3
1 2 4 5
3
選擇題 11 / 12
下列程式碼的結果?
x = 10
if x > 5 and x < 15:
print("範圍內")
else:
print("超出範圍")
範圍內
超出範圍
錯誤
什麼都不印
選擇題 12 / 12
下列哪個會造成無限迴圈?
for i in range(10): print(i)
while False: print("hi")
for i in range(0): print(i)
while True: pass
練習題庫
動手寫寫看
從最簡單的輸入輸出開始,逐步挑戰計算和迴圈!
按 ↓ 開始練習
練習 1 — 輸入輸出
自我介紹
讀取使用者的姓名 和年齡 ,印出一句自我介紹。
# 預期輸入:
請輸入姓名:小明
請輸入年齡:18
# 預期輸出:
大家好,我叫小明,今年18歲!
name = ("請輸入姓名:")
age = input("請輸入年齡:")
print(f"大家好,我叫{ },今年{age}歲!")
input
print
str
name
"name"
age
f-string 的大括號裡放變數名 ,加引號就變成印出「name」這四個字。
顯示答案
name = input("請輸入姓名:")
age = input("請輸入年齡:")
print(f"大家好,我叫{name},今年{age}歲!")
練習 2 — 輸入輸出
重複印出
讀取一個字串 和次數 ,把字串重複印出。
# 預期輸入:
請輸入文字:Ha
請輸入次數:3
# 預期輸出:
HaHaHa
text = input("請輸入文字:")
n = (input("請輸入次數:"))
print(text n)
int
str
float
*
+
**
次數不轉成 int 的話,"哈囉" * "3" 會直接出錯。字串乘上整數才是重複。
顯示答案
text = input("請輸入文字:")
n = int(input("請輸入次數:"))
print(text * n)
練習 3 — 輸入輸出
字串長度
讀取一個字串,印出它的長度 。
# 預期輸入:
請輸入文字:Python
# 預期輸出:
"Python" 的長度是 6
text = input("請輸入文字:")
print(f'"{text}" 的長度是 { }')
len(text)
len
text.len()
count(text)
len 是函式,要用 len(text) 這樣呼叫,不是 text.len()。
顯示答案
text = input("請輸入文字:")
print(f'"{text}" 的長度是 {len(text)}')
練習 4 — 計算
BMI 計算機
讀取身高(公分) 和體重(公斤) ,計算 BMI 並印出到小數第一位 。
# 公式:BMI = 體重 / (身高公尺)²
# 預期輸入:
請輸入身高(cm):170
請輸入體重(kg):65
# 預期輸出:
你的 BMI 是 22.5
h = (input("請輸入身高(cm):"))
w = float(input("請輸入體重(kg):"))
bmi = w / (h / 100) 2
print(f"你的 BMI 是 {bmi:.1f}")
float
int
str
**
*
//
身高體重會有小數,用 int 會把 170.5 砍成 170。
顯示答案
h = float(input("請輸入身高(cm):"))
w = float(input("請輸入體重(kg):"))
bmi = w / (h / 100) ** 2
print(f"你的 BMI 是 {bmi:.1f}")
練習 5 — 計算
溫度轉換
讀取攝氏溫度 ,轉換成華氏溫度。
# 公式:F = C × 9/5 + 32
# 預期輸入:
請輸入攝氏溫度:30
# 預期輸出:
華氏溫度為 86.0°F
c = float(input("請輸入攝氏溫度:"))
f = c 9 5 + 32
print(f"華氏溫度為 {f:.1f}°F")
*
/
+
//
-
用 // 的話 9//5 會變成 1,換算就錯了。
顯示答案
c = float(input("請輸入攝氏溫度:"))
f = c * 9 / 5 + 32
print(f"華氏溫度為 {f:.1f}°F")
練習 6 — 計算
找零計算器
讀取商品價格 和付款金額 ,計算應找零多少。若金額不足則提示。
# 預期輸入:
商品價格:75
付款金額:100
# 預期輸出:
應找零 25 元
price = int(input("商品價格:"))
paid = int(input("付款金額:"))
if paid price:
print(f"應找零 {paid - price} 元")
:
print(f"金額不足,還差 { } 元")
>=
<=
==
else
elif
price - paid
paid - price
「還差多少」是價格減付款 ,順序寫反會得到負數。
顯示答案
price = int(input("商品價格:"))
paid = int(input("付款金額:"))
if paid >= price:
print(f"應找零 {paid - price} 元")
else:
print(f"金額不足,還差 {price - paid} 元")
練習 7 — 計算
成績等第
讀取分數,判斷等第:90+ → A、80+ → B、70+ → C、60+ → D、否則 F。
# 預期輸入:
請輸入成績:85
# 預期輸出:
成績等第:B
score = int(input("請輸入成績:"))
if score >= 90:
grade = "A"
score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
:
grade = "F"
print(f"成績等第:{grade}")
elif
if
else
while
全部用 if 的話 95 分會一路被改寫成 D;elif 才是「前面沒成立才檢查」。
顯示答案
score = int(input("請輸入成績:"))
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"成績等第:{grade}")
練習 8 — 迴圈
1 加到 N
讀取整數 N,計算 1 + 2 + 3 + ... + N 的總和。
# 預期輸入:
請輸入 N:100
# 預期輸出:
1 到 100 的總和是 5050
n = int(input("請輸入 N:"))
total =
for i in range(1, ):
total i
print(f"1 到 {n} 的總和是 {total}")
0
1
n
n + 1
n
n - 1
+=
-=
range 的結束不包含 在內,寫 n 會少加最後一個數。
顯示答案
n = int(input("請輸入 N:"))
total = 0
for i in range(1, n + 1):
total += i
print(f"1 到 {n} 的總和是 {total}")
練習 9 — 迴圈
九九乘法表(指定段)
讀取一個數字 N,印出九九乘法表的第 N 段。
# 預期輸入:
請輸入要查詢的段數:7
# 預期輸出:
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
...
7 x 9 = 63
n = int(input("請輸入要查詢的段數:"))
for i in :
print(f"{n} x {i} = { }")
range(1, 10)
range(10)
range(1, 9)
n * i
n + i
i * i
range(10) 會從 0 開始,多印一行「x 0 = 0」。
顯示答案
n = int(input("請輸入要查詢的段數:"))
for i in range(1, 10):
print(f"{n} x {i} = {n * i}")
練習 10 — 迴圈
偶數加總
讀取整數 N,計算 1 到 N 之間所有偶數 的總和。
# 預期輸入:
請輸入 N:10
# 預期輸出:
1 到 10 的偶數總和是 30
n = int(input("請輸入 N:"))
total = 0
for i in range(1, n + 1):
if i 2 0:
total += i
print(f"1 到 {n} 的偶數總和是 {total}")
%
//
/
==
=
!=
% 是取餘數。餘數等於 0 就代表整除,也就是偶數。
顯示答案
n = int(input("請輸入 N:"))
total = 0
for i in range(1, n + 1):
if i % 2 == 0:
total += i
print(f"1 到 {n} 的偶數總和是 {total}")
練習 11 — 迴圈
星星三角形
讀取整數 N,印出 N 層的直角三角形。
# 預期輸入:
請輸入層數:5
# 預期輸出:
*
**
***
****
*****
n = int(input("請輸入層數:"))
for i in range(1, n + 1):
print( )
"*" * i
"*" + i
i * i
"*" * n
字串乘上整數就是重複那麼多次。用 n 的話每層都一樣長,變成長方形。
顯示答案
n = int(input("請輸入層數:"))
for i in range(1, n + 1):
print("*" * i)
練習 12 — 迴圈
倒數計時
讀取整數 N,從 N 倒數到 1,最後印出「發射!」。
# 預期輸入:
倒數開始:5
# 預期輸出:
5
4
3
2
1
發射!
n = int(input("倒數開始:"))
for i in range(n, , ):
print(i)
print("發射!")
0
1
-1
n
-1
1
要倒數就把「間隔」設成 -1;結束值寫 0 才會印到 1(結束值不包含)。
顯示答案
n = int(input("倒數開始:"))
for i in range(n, 0, -1):
print(i)
print("發射!")
練習 13 — 迴圈
密碼驗證
設定密碼為 "python123",讓使用者最多嘗試 3 次 。
# 預期輸入(錯誤情境):
請輸入密碼:abc → 密碼錯誤,剩餘 2 次
請輸入密碼:123 → 密碼錯誤,剩餘 1 次
請輸入密碼:xxx → 帳號已鎖定!
# 預期輸入(正確情境):
請輸入密碼:python123 → 登入成功!
password = "python123"
for i in :
guess = input("請輸入密碼:")
if guess password:
print("登入成功!")
else:
remaining = 2 - i
if remaining > 0:
print(f"密碼錯誤,剩餘 {remaining} 次")
else:
print("帳號已鎖定!")
range(3)
range(1, 3)
while True
==
=
!=
break
continue
猜對了要用 break 跳出,不然還會繼續問完三次。
顯示答案
password = "python123"
for i in range(3):
guess = input("請輸入密碼:")
if guess == password:
print("登入成功!")
break
else:
remaining = 2 - i
if remaining > 0:
print(f"密碼錯誤,剩餘 {remaining} 次")
else:
print("帳號已鎖定!")
複習完成!
語法講義可以隨時回來翻閱,練習題建議在 Playground 實際跑看看!