在python中,如果我说

print 'h'

得到字母h和换行符。如果我说

print 'h',

我得到了字母h,没有换行符。如果我说

print 'h',
print 'm',

我得到字母h,一个空格,和字母m。我如何阻止Python打印空格?

print语句是同一个循环的不同迭代,所以我不能只使用+运算符。


当前回答

print('''first line \
second line''')

它会产生

第一行,第二行

其他回答

import sys

sys.stdout.write('h')
sys.stdout.flush()

sys.stdout.write('m')
sys.stdout.flush()

您需要调用sys.stdout.flush(),否则它将把文本保存在缓冲区中,而您将看不到它。

我不是在增加一个新的答案。我只是把最好的答案用更好的格式写出来。 我可以看到,通过评级的最佳答案是使用sys.stdout.write(someString)。你可以试试这个:

    import sys
    Print = sys.stdout.write
    Print("Hello")
    Print("World")

将收益率:

HelloWorld

仅此而已。

Python 2.5.2 (r252:60911, Sep 27 2008, 07:03:14)
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print "hello",; print "there"
hello there
>>> print "hello",; sys.stdout.softspace=False; print "there"
hellothere

但实际上,应该直接使用sys.stdout.write。

在python 2.6中:

>>> print 'h','m','h'
h m h
>>> from __future__ import print_function
>>> print('h',end='')
h>>> print('h',end='');print('m',end='');print('h',end='')
hmh>>>
>>> print('h','m','h',sep='');
hmh
>>>

因此,使用__future__中的print_function,你可以显式地设置print函数的sep和end参数。

print("{0}{1}{2}".format(a, b, c))