Python中如何打印不带换行的语句?

8

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

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

for i in x:
    print i

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

.
.
.
.
.
.
.
.

谢谢!

5个回答

19
这可以通过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

作为源文件中的第一个语句。
正如print()文档所述:
Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

注意,这与我最近回答的一个问题类似(https://dev59.com/Ymct5IYBdhLWcg3wa83p#12102758),如果您感兴趣,其中包含有关print()函数的一些附加信息。


1
请注意,这仅适用于Python 3或在文件开头使用from __future__ import print_function - omz
@omz 是的,没错 - 我只是在你发表评论时添加了一条注释。 - Levon

9
import sys
for i in x:
    sys.stdout.write(i)

或者

print ''.join(x)

6

我很惊讶没有人提到在Python3之前抑制换行的方法:使用尾逗号。

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

这会在特定字符之前插入空格,如这里所述。

这就是我一直在寻找的!谢谢! - Paschalis

3

如其他回答所述,您可以使用sys.stdout.write打印,或在print之后使用尾随逗号来添加空格,但另一种以您想要的任何分隔符打印列表的方法是使用join:

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

1

针对Python3:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接