为什么你的代码会报 TypeError?一文搞懂字符串拼接的逻辑
想象一下,你正在写一个欢迎程序。你已经通过变量拿到了用户的名字:你现在的任务是打印出一句: “欢迎你,张三!” 。这时候,我们就需要把 固定的文字 和 变化的变量 拼接在一起。在 Python 中, 号不仅能做数学加法,还能作为 字符串的“胶水” 。它可以把两个或多个字符串字面量(或者字符串变量)横向连接成一个新的字符串。# 1. 拼接字符串字面量print("学好Python," + "走遍天下都不怕")# 2. 拼接变量与字面量hero = "孙悟空"action = "打怪兽"print(hero + "正在" + action)
# 只要中间有空格或换行,它们会自动粘在一起text = "Hello " "World"print(text) # 输出: Hello World
运行结果:学好Python,走遍天下都不怕
孙悟空正在打怪兽请记住:+ 号拼接只能用于“字符串 + 字符串”。如果你试图用 号去拼接字符串和 数字 (整数或浮点数),Python 就会当场“翻脸”报错。name = "周杰伦"age = 18# 试图把字符串和数字直接相加print("我是" + name + ",我今年" + age + "岁")
计算机很轴的。它不知道你这个 是想做 数学加法 还是 文字拼接 。为了安全起见,它索性报错。还记得我们之前学的“变身魔法”吗?你需要先用 函数把数字转成字符串。# 将数字 age 转换为字符串再拼接print("我是" + name + ",我今年" + str(age) + "岁")
在 Python 中,其实还有一种比较“冷门”但很有趣的拼接方式: 字面量自动连接 。如果你只是想拼接两个 写死的字符串 ,甚至连 号都不用写,只需要把它们挨在一起即可。注意: 这种方法 不适用于变量 ,只适用于直接写在代码里的引号内容。在实际开发中,为了清晰起见,大家还是更倾向于使用 + 或者我们下一章要讲的格式化方法。核心限制 :只能 str + str 。遇到数字必须先用 str() 转换。注意空格 :拼接时,Python 不会自动帮你加空格,如果需要空格,记得在字符串里预留。