答案頁 · 12 道題

Python 型別提示練習答案

本頁彙整 Python 型別提示 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python 型別提示 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。

01 · 選擇題

函式籤名中的 name: str 表示什麼?

  1. name 必須是類
  2. name 是可選的
  3. name 會被轉換成字串
  4. name 預期是字串正確答案

答案: name 預期是字串

為什麼: 註解記錄預期型別,不會轉換值。

02 · 選擇題

-> int 描述的是什麼?

  1. 第一個參數
  2. 執行時檢查
  3. 回傳型別正確答案
  4. 必需的匯入

答案: 回傳型別

為什麼: 箭頭引出函式的回傳註解。

03 · 選擇題

list[int] 表示什麼?

  1. 恰好只有一個元素的列表
  2. 只含一個整數的列表
  3. 元素為整數的列表正確答案
  4. 同時是列表的整數

答案: 元素為整數的列表

為什麼: 方括號裡的型別描述每個元素。

04 · 選擇題

float | None 表示什麼?

  1. 函式回傳兩個浮點數
  2. 值可能是浮點數或 None正確答案
  3. 值總是零
  4. 值必須是元組

答案: 值可能是浮點數或 None

為什麼: 聯合型別列出兩種可能的值。

05 · 填空題

補全參數註解。

def greet(name: ____) -> str:
    return f"Hello, {name}"

答案: str

為什麼: name 應該是字串。

06 · 填空題

補全列表元素型別。

def total(values: list[____]) -> int:
    return sum(values)

答案: int

為什麼: values 裡裝的是整數。

07 · 填空題

補全聯合型別運算子。

def find_price(item: str) -> float ____ None:
    return None

答案: |

為什麼: 豎線把 float 和 None 組合起來。

08 · 填空題

補全回傳註解的箭頭。

def double(n: int) ____ int:
    return n * 2

答案: ->

為什麼: 箭頭把參數列表和回傳型別分開。

09 · 輸出預測

螢幕上會顯示什麼?

def f(n: int) -> int:
    return n + 1
print(f(2))

答案: 3

為什麼: 型別提示描述值,函式仍然回傳三。

10 · 輸出預測

這段程式碼會輸出什麼?

def f(x: str = "a") -> str:
    return x * 2
print(f())

答案: aa

為什麼: 預設值是 a,重複兩次就是 aa。

11 · 輸出預測

執行結果是什麼?

def f(x: int | None) -> str:
    return "none" if x is None else str(x)
print(f(None))

答案: none

為什麼: None 走第一個分支,回傳字串 none。

12 · 輸出預測

這段程式列印出什麼?

from typing import get_type_hints
def f(n: int) -> str:
    return str(n)
print(get_type_hints(f)["n"].__name__)

答案: int

為什麼: get_type_hints 讀取註解,其型別物件的名字是 int。

先試一遍題目

打開 Python 型別提示 練習頁,用即時回饋回答同樣的 12 道題。

練習本課