Python3中打印含整数的变量为何出现多余括号?
问题原因及解决办法
首先得说清楚为什么会出现括号:当你写a="The value of count is",count的时候,Python并没有把这两个值合并成一个字符串——它会自动把用逗号分隔的多个值打包成一个元组(tuple)。所以a实际上是一个包含两个元素的元组:('The value of count is', 5)。而Python打印元组的时候,会输出它的标准表示形式,也就是带括号的样子,这就是你看到括号的原因。
接下来针对你的需求(既要得到正确的输出,又能返回变量a的值),给你两种解决方案:
方案1:让a成为你想要的字符串(推荐)
如果你希望a本身就是最终的目标字符串,那需要把字符串和整数拼接/格式化在一起,而不是用逗号分隔:
- 用f-string(Python 3.6+最简洁的方式):
count = 5 a = f"The value of count is, {count}" print(a)
- 或者用
str.format():
count = 5 a = "The value of count is, {}".format(count) print(a)
- 老版本Python可以用格式化运算符
%:
count = 5 a = "The value of count is, %d" % count print(a)
这几种写法下,a都是字符串"The value of count is, 5",打印的时候就会输出你想要的内容,也可以直接返回a。
方案2:保留a作为元组,调整打印方式
如果因为某些场景必须让a保持元组的结构,那可以在打印的时候对元组做处理,去掉括号:
- 解包元组元素,指定分隔符:
count = 5 a = "The value of count is", count print(*a, sep=', ')
这里的*a会把元组的两个元素拆成print的两个独立参数,sep=', '指定用逗号加空格分隔它们,输出就是你想要的结果。
- 或者把元组元素转成字符串后拼接:
count = 5 a = "The value of count is", count print(', '.join(map(str, a)))
map(str, a)把元组里的整数转成字符串,再用, 拼接起来,同样能得到正确的输出。
不管哪种方案,都能满足你输出需求的同时,保留对变量a的使用(返回它的值)。
内容的提问来源于stack exchange,提问作者Piyush Agarwal
相关产品推荐
相关产品推荐

