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

为何逗号在Python变量赋值中失效却可在print()函数中正常使用?

问题

以下Python代码执行后输出结果带有括号和引号:

my_name = "Ali"
my_age = 22
place_of_work = " TD Bank"

introduction = 'Hi, my name is ' + my_name + ' and I am' , my_age , 'years old.' + ' I work at' +  place_of_work + '.'

print(introduction)

但将拼接内容直接放入print()函数中却能正常输出预期文本,想请教为何变量赋值时使用逗号无法达到预期效果?

回答

这是因为在Python里,逗号在赋值语句中会创建一个元组(tuple),而非将各元素拼接成字符串。

你给introduction赋值时用了逗号,这个变量实际存储的是一个包含三个元素的元组:第一个是拼接好的字符串'Hi, my name is Ali and I am',第二个是整数22,第三个是拼接好的字符串'years old. I work at TD Bank.'。打印元组时,Python会按照元组的默认格式输出,也就是用括号包裹元素,字符串元素还会带上引号,这就是你看到的奇怪输出。

而直接把这些内容放进print()函数时,逗号的作用完全不同——print()会将逗号分隔的多个参数各自转换为字符串,然后自动用空格连接后输出,不会生成元组,所以结果就是你想要的正常文本。

如果想在赋值时就得到拼接好的字符串,有两种常用方法:

  • 把所有部分用+拼接,注意要把整数my_age转为字符串,比如str(my_age):
    introduction = 'Hi, my name is ' + my_name + ' and I am ' + str(my_age) + ' years old. I work at' + place_of_work + '.'
    
  • 用f-string更简洁直观:
    introduction = f'Hi, my name is {my_name} and I am {my_age} years old. I work at {place_of_work}.'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:05:30