我正在运行此代码以打印三角形图案,但我似乎无法理解为什么在两者之间添加了两个额外的空格。
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'表示。
答案 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="")
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