You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python初学者求助:字符串与整数拼接报错问题及代码修正方案

解决Python字符串与整数拼接的TypeError问题

嘿,刚入门Python遇到这个问题真的太常见啦!我来帮你把问题拆明白,再给出简单易上手的解决方案~

为什么会报错?

你看到的TypeError: can only concatenate str (not "int") to str,核心原因是Python里的+运算符要求两边的操作数类型必须一致:

  • 如果是字符串和字符串,+会把它们拼接在一起;
  • 如果是数字和数字,+会做加法运算;
  • 但字符串和整数/浮点数直接用+拼接,Python就不知道该执行哪种操作了,所以抛出类型错误。

比如你写的print("I am " + 187 + " years old"),"I am "是字符串,187是整数,类型不匹配,自然就报错啦。

三种可行的解决方案

1. 手动把整数转成字符串(最基础的方法)

用str()函数把整数转换成字符串类型,这样两边都是字符串,就能正常拼接了:

print("I am " + str(187) + " years old")
# 用变量的话更灵活:
print("I am " + str(Robot_Age) + " years old")

2. 使用f-string(Python 3.6+推荐的写法)

这是现在最简洁、可读性最高的方式,直接在字符串里用{变量名}嵌入内容,Python会自动帮你处理类型转换,完全不用手动转:

print(f"I am {187} years old")
print(f"I am {Robot_Age} years old too")

3. 使用format()方法(兼容性更好的写法)

如果你的Python版本比较老(低于3.6),可以用str.format()来格式化字符串,效果和f-string类似:

print("I am {} years old".format(187))
print("I am {} years old too".format(Robot_Age))

修复后的完整代码

我把你写的代码全部调整好了,用了最推荐的f-string写法,还优化了一些细节让输出更通顺:

User_Person = input("What is your name? ")
print(f"Hello {User_Person}, I am 2xx-350")
User_Age = int(input("How old are you?"))
Robot_Age = 187
I_am_years_older = Robot_Age - User_Age

if User_Age == Robot_Age:
    print(f"I am {Robot_Age} years old too")
else:
    print(f"I am {Robot_Age} years old")

print(f"That means I am {I_am_years_older} years older than you.")

额外小提示

  • 尽量用变量代替直接写数字(比如用Robot_Age代替187),后续修改年龄只需要改一处就行,代码更易维护;
  • 输出的时候加个逗号或者空格,让句子读起来更自然~

内容的提问来源于stack exchange,提问作者eissam gaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 19:32:37