如何在打印语句后取消换行符?

Posted

技术标签:

【中文标题】如何在打印语句后取消换行符?【英文标题】:How can I suppress the newline after a print statement? 【发布时间】:2012-08-19 15:00:28 【问题描述】:

我读到要在打印语句后取消换行符,您可以在文本后加一个逗号。示例 here 看起来像 Python 2。如何在 Python 3 中完成?

例如:

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

需要更改哪些内容才能将它们打印在同一行上?

【问题讨论】:

你可以这样做print(' '.join([str(i) for i in [1, 2, 3, 4]])) print(*[1, 2, 3, 4]) 适用于打印空格分隔序列的常见情况 相关帖子 - How to print without newline or space?。该线程中接受的答案涵盖了所有 Python 版本。 【参考方案1】:

问题问:“如何在 Python 3 中完成?

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

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

这将生成:

1  2  3  4

更多信息请参见Python doc:

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="" 只是覆盖换行符。 @ChrisHarris 查看带有文档引用的更新,因此您将用""(空字符串)替换换行符 我看到每个人都说要执行 end='',但我得到:SyntaxError: invalid syntax @thang 您使用的是什么版本的 Python?这适用于版本 3.x 更具体地说,它是from __future__ import print_function【参考方案2】:

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

【讨论】:

这阐明了 end="" 参数将如何影响下一行,但不会影响下一行 - 谢谢!【参考方案3】:

直到 Python 3.0,print 才从语句转换为函数。如果您使用的是较旧的 Python,则可以使用尾随逗号取消换行,如下所示:

print "Foo %10s bar" % baz,

【讨论】:

专门问的关于使用Python 3的问题。【参考方案4】:

因为 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)

我得到了我想要的(替换你想要的——你的里程可能会有所不同)

【讨论】:

【参考方案5】:

有一些关于不使用换行符here 的打印信息。

在 Python 3.x 中,我们可以在打印函数中使用“end=”。这告诉它以我们选择的字符结束字符串,而不是以换行符结束。例如:

print("My 1st String", end=","); print ("My 2nd String.")

这会导致:

My 1st String, My 2nd String.

【讨论】:

以上是关于如何在打印语句后取消换行符?的主要内容,如果未能解决你的问题,请参考以下文章

java 控制台输出换行

在sql server 数据库字段中如何加入回车符和换行符?

excel如何删除回车键

python中for循环前面换行最后不换行

在oracle里如何去掉数据后的回车换行符

动态打印一行