我读到了一个关于如何取消 print 语句在输出后自动换行的问题,可以在文本后加上逗号。这个 例子 是针对 Python 2 的。那么在 Python 3 中应该怎么做呢?
举个例子:
for item in [1,2,3,4]:
print(item, " ")
需要进行什么更改才能将它们打印在同一行上?
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
end=''
,但我却遇到了 SyntaxError: invalid syntax
错误。 - thangfrom __future__ import print_function
。 - Scott StaffordPython 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.0,print语句才转变为函数。如果您使用的是较旧版本的Python,则可以通过在末尾加上逗号来抑制换行,例如:
print "Foo %10s bar" % baz,
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)
我得到了我想要的(替换成你想要的 -- 你的结果可能会有所不同)
关于不换行打印的信息可以在这里找到。
在Python 3.x中,我们可以在print函数中使用'end='。这告诉它以我们选择的字符结束字符串,而不是以换行符结束。例如:
print("My 1st String", end=","); print ("My 2nd String.")
这会导致:
My 1st String, My 2nd String.
print(' '.join([str(i) for i in [1, 2, 3, 4]]))
。 - anon582847382print(*[1, 2, 3, 4])
适用于打印以空格分隔的序列的常见情况。 - John La Rooy