如何在打印语句后禁止换行符?

我读了一个打印语句后压缩换行符,你可以在文本之后加一个逗号。 这里的例子看起来像Python 2. 如何在Python 3中完成?

例如:

for item in [1,2,3,4]: print(item, " ") 

什么需要改变,以便将它们打印在同一行上?

问题是:“ Python 3中怎么做?

在Python 3.x中使用这个构造:

 for item in [1,2,3,4]: print(item, " ", end="") 

这将产生:

 1 2 3 4 

看到这个Python文档的更多信息:

 Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline 

除此之外

另外, print()函数还提供了sep参数,可以指定应如何分离要打印的各个项目。 例如,

 In [21]: print('this','is', 'a', 'test') # default single space between items this is a test In [22]: print('this','is', 'a', 'test', sep="") # no spaces between items thisisatest In [22]: print('this','is', 'a', 'test', sep="--*--") # user specified separation this--*--is--*--a--*--test 

在Python 3.0之前,打印没有从语句转换到函数。 如果你使用的是较老的Python,那么你可以用下面的逗号来压缩换行符:

 print "Foo %10s bar" % baz, 

Python的代码3.6.1

 print("This first text and " , end="") print("second text will be on the same line") print("Unlike this text which will be on a newline") 

产量

 >>> This first text and second text will be on the same line Unlike this text which will be on a newline 

因为python 3的print()函数允许end =“”的定义,所以可以满足大部分的问题。

在我的情况下,我想PrettyPrint,并感到沮丧,这个模块没有类似的更新。 所以我让它做我想要的:

 from pprint import PrettyPrinter class CommaEndingPrettyPrinter(PrettyPrinter): def pprint(self, object): self._format(object, self._stream, 0, 0, {}, 0) # this is where to tell it what you want instead of the default "\n" self._stream.write(",\n") def comma_ending_prettyprint(object, stream=None, indent=1, width=80, depth=None): """Pretty-print a Python object to a stream [default is sys.stdout] with a comma at the end.""" printer = CommaEndingPrettyPrinter( stream=stream, indent=indent, width=width, depth=depth) printer.pprint(object) 

现在,当我这样做:

 comma_ending_prettyprint(row, stream=outfile) 

我得到我想要的(取代你想要的 – 你的里程可能会有所不同)