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 在编码时捕获类型问题
在函数边界处做参数类型校验