Python中print多参数输出出现多余空格的问题咨询
问题解惑:Python print函数参数分隔导致的空格问题
原因分析
你遇到的问题根源是Python print函数的默认分隔符:
当使用print("*", " " * num, "*")这种多参数形式时,print会自动在每个参数之间添加一个空格(默认sep=" ")。也就是说,实际输出的内容是:"*" + " " + (" " * num) + " " + "*"
中间多了两个额外的空格(参数之间的分隔),所以末尾的*会比预期多缩进2个空格。
而第一种方式用多次print(..., end=""),因为每次print都用end=""取消了默认换行,且没有参数之间的分隔空格,所以输出是连续的* + 指定数量空格 + *,结果正确。
解决方法
如果想用简洁的单print语句实现正确输出,有两种方式:
- 直接拼接字符串:
print("*" + " " * num + "*")
- 修改print的分隔符参数
sep为空字符串:
print("*", " " * num, "*", sep="")
这两种方式都会输出和第一种方法完全一致的结果。
内容的提问来源于stack exchange,提问作者Code_Student
相关产品推荐
相关产品推荐

