Skip to content

TypeError:类型错误

错误信息

                unsupported operand type(s) for +: 'int' and 'str'
              

快速摘要

你把两种不兼容的类型混在一起操作,比如想把数字和字符串相加,Python 不知道该怎么做。

为什么发生

  • 数字和字符串直接用 + 拼接

  • 对不支持某种操作的类型调用了该操作,如对 None 做迭代

  • 函数期望某种类型参数,却传入了另一种类型

  • + 拼接 bytes 和 str

最小示例

✗ 错误代码
age = 18
msg = "我" + age + "岁"
✓ 修复代码
age = 18
msg = f"我{age}岁"

字符串和数字不能直接 +。用 f-string f"我{age}岁" 让 Python 自动把数字转成字符串。

如何诊断

  • 阅读错误信息,看是哪种类型和哪种操作不兼容

  • 在出错前用 print(type(x)) 打印变量的实际类型

  • 检查函数签名或文档,确认期望的参数类型

如何修复

  • str(x) 把数字转成字符串再拼接

  • int(x)float(x) 把字符串转成数字再算术

  • 用 f-string 格式化:f"值是 {x}"

如何预防

  • 使用类型注解 + mypy 在编码时捕获类型问题

  • 在函数边界处做参数类型校验

相关资源

相关课程

相关练习

← 返回语言