【问题标题】:Print statements without new lines in python?在python中打印没有换行的语句?
【发布时间】:2012-08-20 21:09:00
【问题描述】:

我想知道是否有一种方法可以打印没有换行符的元素,例如

x=['.','.','.','.','.','.']

for i in x:
    print i

这将打印........,而不是通常打印的内容

.
.
.
.
.
.
.
.

谢谢!

【问题讨论】:

标签: python


【解决方案1】:

这可以通过 Python 3 使用 print() 函数 轻松完成。

for i in x:
  print(i, end="")  # substitute the null-string in place of newline

会给你

......

Python v2 中,您可以使用 print() 函数,包括:

from __future__ import print_function

作为源文件中的 first 语句。

作为print() docs 状态:

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

请注意,这类似于我最近回答的一个问题 (https://stackoverflow.com/a/12102758/1209279),如果您好奇的话,其中包含有关 print() 函数的一些附加信息。

【讨论】:

  • 请注意,这仅适用于 Python 3 或文件开头有 from __future__ import print_function 时。
  • @omz 是的,这是正确的 - 我只是在您发表评论时添加了一条注释。
【解决方案2】:
import sys
for i in x:
    sys.stdout.write(i)

print ''.join(x)

【讨论】:

    【解决方案3】:

    我很惊讶没有人提到用于抑制换行符的 pre-Python3 方法:尾随逗号。

    for i in x:
        print i,
    print  # For a single newline to end the line
    

    这确实会在某些字符之前插入空格,如 here 所述。

    【讨论】:

    • 这就是我要找的!谢谢!
    【解决方案4】:

    正如其他答案中提到的,您可以使用 sys.stdout.write 打印,也可以在打印后使用尾随逗号来完成空格,但另一种使用您想要的分隔符打印列表的方法是连接:

    print "".join(['.','.','.'])
    # ...
    print "foo".join(['.','.','.'])
    #.foo.foo.
    

    【讨论】:

      【解决方案5】:

      对于 Python3:

      for i in x:
          print(i,end="")
      

      【讨论】:

        猜你喜欢
        • 2015-02-25
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 2018-04-01
        • 1970-01-01
        相关资源
        最近更新 更多