如何在打印语句后禁止换行符?
我读了一个打印语句后压缩换行符,你可以在文本之后加一个逗号。 这里的例子看起来像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)
我得到我想要的(取代你想要的 – 你的里程可能会有所不同)