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

Python中print()函数行为:逗号分隔参数与加号拼接打印的区别

你给出的示例中因为name是字符串类型,两个语句的输出结果完全一致,但二者本质上存在多维度的差异,并不只是字符串生成方式的区别:

  • 参数处理与容错性差异
    print("Hello", name)是向print函数传入了2个独立参数,print会自动将所有传入的非字符串类型参数转为字符串,默认在多个参数之间插入空格、末尾追加换行后输出。哪怕name是数字、列表、自定义类实例等任意可序列化对象,都可以正常运行,不需要额外做类型转换。
    print("Hello " + name)是先执行+字符串拼接操作,生成一个完整的字符串之后再传给print函数。如果name不是字符串类型,会直接抛出TypeError类型错误,必须手动调用str()做类型转换才能正常运行。
  • 运行效率差异
    当需要拼接的内容多、体积大时,用+拼接字符串会产生大量临时字符串对象,内存开销更高、运行速度更慢。直接给print传多个参数不需要提前做拼接操作,开销更低。
  • 灵活度差异
    多参数的写法支持通过print的sep参数自定义多个参数之间的分隔符,也可以通过end参数自定义行尾符号,比如print("Hello", name, sep='_', end='!')会输出Hello_Lelouch!,修改成本极低。字符串拼接的写法如果要调整分隔符或者行尾符号,需要手动修改拼接逻辑,灵活度更低。

可以参考下面的测试代码直观感受差异:

name = 987 # 改为数字类型
print("Hello", name) # 正常输出:Hello 987
print("Hello " + name) # 运行报错:TypeError: can only concatenate str (not "int") to str

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:45:01