前三週 Python 常見語法表
這一頁是解題時可以自行查閱的字典。先根據「我現在想做什麼」找到對應語法,再把範例中的變數名稱和數值改成自己的問題。
一、輸入資料
| 想做的事 | 寫法 | 說明 |
|---|---|---|
| 讀取一行文字 | input() |
得到的資料型態是文字 |
| 讀取一個整數 | int(input()) |
適合人數、數量、整數邊長 |
| 讀取一個小數 | float(input()) |
輸入即使寫成整數,也會轉為浮點數 |
依序讀取兩行整數:
題目有幾行輸入,通常就需要依序執行幾次
input()。不要在input()裡加入「請輸入」等提示文字。
二、變數與指定
=的意思是把右邊計算出的結果存進左邊的變數,不是數學中的「左右相等」。變數名稱可以使用英文字母、數字和底線,但不能以數字開頭。
三、輸出結果
| 想做的事 | 寫法 |
|---|---|
| 輸出一個結果 | print(answer) |
| 輸出指定文字 | print("Yes") |
| 在同一行輸出兩個結果 | print(first, second) |
| 分成兩行輸出 | 寫兩次print() |
print(a, b)會自動在兩項之間加入一個空白。輸出的大小寫、空格和行數都必須符合題目要求。
四、基本運算
| 運算 | Python寫法 | 範例結果 |
|---|---|---|
| 加法 | 7 + 3 |
10 |
| 減法 | 7 - 3 |
4 |
| 乘法 | 7 * 3 |
21 |
| 一般除法 | 7 / 3 |
2.333... |
| 整數除法 | 7 // 3 |
2 |
| 取餘數 | 7 % 3 |
1 |
| 次方 | 7 ** 2 |
49 |
平方根可以寫成0.5次方:
運算順序
Python會先算括號,再算次方、乘除,最後算加減。無法確定時,使用括號清楚表達計算順序。
五、比較運算
比較後的結果只有True或False。
| 意義 | Python寫法 |
|---|---|
| 等於 | a == b |
| 不等於 | a != b |
| 大於 | a > b |
| 小於 | a < b |
| 大於或等於 | a >= b |
| 小於或等於 | a <= b |
=是指定資料,==才是比較兩者是否相等。
六、組合多個條件
| 寫法 | 意義 |
|---|---|
condition1 and condition2 |
兩個條件都成立 |
condition1 or condition2 |
至少一個條件成立 |
not condition |
將成立與不成立反轉 |
七、條件判斷
只有成立時才做
成立與不成立分別處理
三種以上的情況
檢查重點:
- 條件後面必須有冒號
:。 - 下一行必須縮排,而且同一區塊的縮排要一致。
- Python會由上往下判斷,遇到第一個成立的分支後就不再檢查後面的分支。
八、for迴圈與range()
重複固定次數
range(5)依序產生0、1、2、3、4,共執行5次。
指定開始與結束
輸出2、3、4、5。range()包含開始值,但不包含結束值。
指定間隔
第三個數字是每次增加的量,此例依序產生2、4、6、8、10。
九、累加
先在迴圈外建立總和,再於每次迴圈中加入新的數值:
total = total + number也可以簡寫成:
不要把total = 0放在迴圈內,否則每次重複時都會把之前的結果清除。
十、常見錯誤速查
| 狀況 | 優先檢查 |
|---|---|
SyntaxError |
冒號、括號、引號是否缺少;=與==是否混用 |
IndentationError |
if、elif、else、for下一行是否正確縮排 |
ValueError |
是否用int()讀取了小數或非數字資料 |
| 答案小數不正確 | 是否誤用//;輸入是否應使用float() |
| 多輸出內容 | 是否在input()或print()加入題目未要求的提示文字 |
| 迴圈少做或多做一次 | 檢查range()不包含結束值 |
| 累加只剩最後一筆 | 初始值是否誤放在迴圈內 |
十一、解題時的檢查順序
確認輸入有幾行、每行是整數還是小數
→ 建立變數並讀取資料
→ 寫出計算或判斷步驟
→ 完全按照輸出格式輸出
→ 在IDLE使用範例測試
→ 儲存後提交到JMJ