ITPub博客

首页 > 应用开发 > Python > Python 中的 TypeError: unsupported operand type(s) for +: 'int' and 'str' 错误

Python 中的 TypeError: unsupported operand type(s) for +: 'int' and 'str' 错误

原创 Python 作者:ycmag 时间:2025-10-29 15:04:19 0 删除 编辑

这个错误表示你试图将一个整数(int)和一个字符串(str)使用  + 运算符进行相加操作,但 Python 不允许这种类型不一致的操作。

错误示例

python
复制 下载
# 错误代码age = 25message = "我今年" + age + "岁"print(message)

运行上述代码会产生:

text
复制 下载
TypeError: unsupported operand type(s) 
wap.shunLihpk.com    
wap.shunLijzt.com    

wap.mpfqvcs.com    
wap.baoqichem.com    
gjyyzb.cn    

m.gjyyzb.cn    
wap.gjyyzb.cn    
gjyyzb.com    
m.gjyyzb.com    
wap.gjyyzb.com    
for +: 'int' and 'str'

解决方法

方法1:使用 str() 函数将整数转换为字符串

python
复制 下载
age = 25message = "我今年" + str(age) + "岁"print(message)  # 输出: 我今年25岁

方法2:使用格式化字符串(f-string,Python 3.6+)

python
复制 下载
age = 25message = f"我今年{age}岁"print(message)  # 输出: 我今年25岁

方法3:使用 format() 方法

python
复制 下载
age = 25message = "我今年{}岁".format(age)print(message)  # 输出: 我今年25岁

方法4:使用 % 格式化

python
复制 下载
age = 25message = "我今年%d岁" % ageprint(message)  # 输出: 我今年25岁

方法5:使用逗号分隔(仅适用于 print 函数)

python
复制 下载
age = 25print("我今年", age, "岁")  # 输出: 我今年 25 岁# 注意:这种方法会在值之间自动添加空格

更复杂的例子

python
复制 下载
# 处理多个变量name = "小明"age = 20score = 95.5# 使用 f-string(推荐)info = f"{name}今年{age}岁,考试成绩是{score}分"print(info)# 使用 format()info = "{}今年{}岁,考试成绩是{}分".format(name, age, score)print(info)# 使用 % 格式化info = "%s今年%d岁,考试成绩是%.1f分" % (name, age, score)print(info)

常见场景

  1. 用户输入处理:

python
复制 下载
# 用户输入的是字符串,需要转换为数字进行计算num1 = input("请输入第一个数字: ")  # 返回字符串num2 = input("请输入第二个数字: ")  # 返回字符串# 错误:直接相加会进行字符串拼接# result = num1 + num2# 正确:转换为数字后再相加result = int(num1) + int(num2)print(f"结果是: {result}")
  1. 从文件读取数据:

python
复制 下载
# 从文件读取的数字是字符串类型with open("data.txt", "r") as file:
    number_str = file.read().strip()
    # 转换为整数进行计算number = int(number_str) + 10

总结

  • 使用  + 运算符时,确保操作数的类型一致

  • 使用  str() 将其他类型转换为字符串

  • 使用  int() 或  float() 将字符串转换为数字

  • 推荐使用 f-string 进行字符串格式化,代码更简洁易读

记住:在 Python 中, + 运算符可以用于数字相加或字符串连接,但不能混合使用。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/39499/viewspace-3099044/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-04-19

  • 博文量
    16
  • 访问量
    16244