为什么控制台在打印python时有空间

Moh*_*hit 2 python

我只是注意到一些奇怪的东西

在python中,如果我这样做

>>> k = 1
>>> j = 2
>>> print k,",",j
1 , 2   # prints this
Run Code Online (Sandbox Code Playgroud)

我希望它会是:

1,2
Run Code Online (Sandbox Code Playgroud)

为什么这两者之间有空间,而

>>> print str(k) + "," + str(j) 
1,2
Run Code Online (Sandbox Code Playgroud)

谢谢

Sil*_*Ray 7

第一个示例print直接传递3个参数,然后将它们转换为字符串并将它们连接在一起,用空格分隔.第二个示例首先转换并连接字符串,然后将整个字符串print作为单个参数传递.如果你要这样做print str(k), ",", str(j),你会得到与第一个例子相同的结果.

考虑print功能如何工作而不是关键字.例如,采取:

def foo(*args):
    return ' '.join(map(str, args))
Run Code Online (Sandbox Code Playgroud)

foo('a', 'b', 'c')将传递foo 3参数,然后返回由空格连接的3个参数'a b c'. foo('a' + 'b' + 'c')将首先创建字符串'abc',然后将其作为单个参数传递给foo,从而导致foo返回'abc'.