logo
19

类型转换(Type Conversion)

⏱️ 20分钟

类型转换(Type Conversion):统一数据类型,避免计算错误

你现在可能会困惑什么

“明明都是数字,为什么程序报错?”

因为看起来像数字的字符串("123")本质还是字符串。 计算前需要先做类型转换。

一句话定义

类型转换是把数据从一种类型转成另一种类型,以满足计算或存储需求。

生活类比

团队里有中英双语沟通场景,先统一语言才能高效协作。 数据计算也一样,先统一类型再处理。

最小可运行例子

x = 10      # int
y = 2.5     # float
z = x + y   # float
print(z, type(z))

显式转换

print(int("123"))
print(float("3.14"))
print(str(99))
print(bool(0))      # False
print(bool("hi"))  # True

容器转换

nums = [1, 2, 2, 3]
print(set(nums))
print(tuple(nums))
print(list(("a", "b")))

高发报错修复

# 错误:TypeError
# total = "100" + 20

total = int("100") + 20
print(total)  # 120

课堂小测(5 分钟)

  1. "2026" 转成整数后加 10。
  2. 把浮点字符串列表转成 float 列表。
  3. set 对重复数据去重。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

写一个“订单金额处理”函数:

  • 输入金额字符串列表
  • 转成数字并求和
  • 输出总金额和平均金额

本节验收标准

你能独立做到:

  • 区分隐式转换和显式转换
  • 熟练使用 int/float/str/bool
  • 定位并修复基础类型不匹配错误

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:int("3.14") 能直接转。

  • 正解:先 float("3.14")int(...)

  • 误区:bool("False")False

  • 正解:非空字符串都为 True