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

Python初学者咨询:len()直接拼接字符串报错原因及解决方案

问题分析与解决方案

报错原因

你的初始代码报错,核心是类型不匹配:

  • len(name)返回的是整数类型(比如你的示例里这个值是17)
  • Python中+运算符要求两边操作数类型一致,要么都是字符串,要么都是数字。直接把字符串和整数用+拼接,会触发TypeError。
  • 改成str(len(name))后,整数被转换成了字符串类型,两边都是字符串,就能正常拼接了。

其他可行解决方案

另外,注意你原来的代码里name = "What is your Name?"是把提问文本赋值给了变量,实际应该用input()函数获取用户输入的姓名,下面的方案都修正了这个问题:

1. f-string写法(Python3.6+推荐)

这是目前最简洁直观的格式化方式,直接在字符串中嵌入变量:

name = input("What is your Name? ")
print(f"Your Name has: {len(name)} Letters.")

2. str.format()方法

兼容性更强,适合Python3.5及更早版本:

name = input("What is your Name? ")
print("Your Name has: {} Letters.".format(len(name)))

3. 利用print多参数特性

print函数可以接收多个参数,自动将不同类型转为字符串,默认用空格分隔:

name = input("What is your Name? ")
print("Your Name has:", len(name), "Letters.")

如果不想有空格,可指定分隔符为空:

print("Your Name has:", len(name), "Letters.", sep="")

4. 先存长度变量再拼接

和你的修改思路一致,但拆分后逻辑更清晰:

name = input("What is your Name? ")
name_len = len(name)
print("Your Name has: " + str(name_len) + " Letters.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:00:01