空白自动添加python

时间:2018-08-28 07:56:38

标签: python python-3.x

我正在运行此代码以打印三角形图案,但我似乎无法理解为什么在两者之间添加了两个额外的空格。

n=int(input("enter length"))
for x,s in zip(range(0,n),reversed(range(n))):
     print(s*" ","*",((x-1)*2)*"f",(x!=0)*"*")

程序的输出是

    *  
   *dd*
  *dffd*
 *dffffd*
*dffffffd*

多余的空格用字母'd'表示。

3 个答案:

答案 0 :(得分:3)

print输出每个带有空格的参数作为默认分隔符。如果您希望在参数的输出之间不留空格,则应使用sep=''参数:

print(s*" ","*",((x-1)*2)*"f",(x!=0)*"*", sep='')

答案 1 :(得分:1)

print()自动在其参数之间添加空格:

>>> print(1, 2, 3)
1 2 3
>>> print("a", "b", "c")
a b c

您可以手动连接字符串以解决此问题:

print(s*" " + "*" + ((x - 1)*2)*"f" + (x != 0)*"*")

或使用sep

print(s*" ", "*", ((x-1)*2)*"f", (x!=0)*"*", sep="")

来自the documentation

  

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

     

将对象打印到文本流文件中,以sep分隔,后跟end

请注意,参数sep默认为单个空格。

答案 2 :(得分:0)

这是由于项目之间使用了默认的分隔符。
您可以使用sep关键字参数进行自定义:

print(1,2,3,4, sep="-")
#1-2-3-4
print(1,2,3,4, sep="")
#1234