在python中,如果我说
print 'h'
得到字母h和换行符。如果我说
print 'h',
我得到了字母h,没有换行符。如果我说
print 'h',
print 'm',
我得到字母h,一个空格,和字母m。我如何阻止Python打印空格?
print语句是同一个循环的不同迭代,所以我不能只使用+运算符。
在python中,如果我说
print 'h'
得到字母h和换行符。如果我说
print 'h',
我得到了字母h,没有换行符。如果我说
print 'h',
print 'm',
我得到字母h,一个空格,和字母m。我如何阻止Python打印空格?
print语句是同一个循环的不同迭代,所以我不能只使用+运算符。
当前回答
Greg是对的——您可以使用sys.stdout.write
但是,也许您应该考虑重构您的算法,以积累一个<whatever >的列表,然后
lst = ['h', 'm']
print "".join(lst)
其他回答
import sys
sys.stdout.write('h')
sys.stdout.flush()
sys.stdout.write('m')
sys.stdout.flush()
您需要调用sys.stdout.flush(),否则它将把文本保存在缓冲区中,而您将看不到它。
在Python 3中,使用
print('h', end='')
来抑制结束线终止符,和
print('a', 'b', 'c', sep='')
禁用项之间的空格分隔符。请参阅打印文档
Greg是对的——您可以使用sys.stdout.write
但是,也许您应该考虑重构您的算法,以积累一个<whatever >的列表,然后
lst = ['h', 'm']
print "".join(lst)
我不是在增加一个新的答案。我只是把最好的答案用更好的格式写出来。 我可以看到,通过评级的最佳答案是使用sys.stdout.write(someString)。你可以试试这个:
import sys
Print = sys.stdout.write
Print("Hello")
Print("World")
将收益率:
HelloWorld
仅此而已。
print("{0}{1}{2}".format(a, b, c))