答案页 · 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. 值必须是元组
  3. 值可能是浮点数或 None正确答案
  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 道题。

练习本课