Python: 使用 print 命令避免新行

当我使用 print命令时,它会打印我想要的任何内容,然后转到另一行:

print "this should be"; print "on the same line"

应返回:

这应该在同一条线上

而是返回:

这应该是
在同一条线上

更准确地说,我试图用 if创建一个程序来告诉我一个数字是否是2

def test2(x):
if x == 2:
print "Yeah bro, that's tottaly a two"
else:
print "Nope, that is not a two. That is a (x)"

但是它不能识别输入的最后一个 (x),而是准确地打印出: “(x)”(带括号的字母)。为了实现这个目标,我必须写下:

print "Nope, that is not a two. That is a"; print (x)

如果我输入 test2(3),就会得到:

不,那不是二,那是
3

因此,要么我需要让 Python 将打印行中的 x 识别为数字; 要么在同一行上打印两个不同的东西。

重要提示 : 我使用的是 < strong > version 2.5.4

另一个注意事项: 如果我把 print "Thing" , print "Thing2"放在第二行,它会显示“语法错误”。

460280 次浏览

Python 3. x中,可以将 end参数用于 print()函数,以防止打印换行符:

print("Nope, that is not a two. That is a", end="")

Python 2. x中,您可以使用后面的逗号:

print "this should be",
print "on the same line"

不过,打印变量并不需要这个参数:

print "Nope, that is not a two. That is a", x

注意,后面的逗号仍然会导致在行尾打印一个空格,也就是说,它相当于在 Python 3中使用 end=" "。若要同时禁止显示空格字符,可以使用

from __future__ import print_function

访问 Python3打印函数或使用 sys.stdout.write()

使用后面的逗号来防止出现新行:

print "this should be"; print "on the same line"

应该是:

print "this should be", "on the same line"

此外,您还可以通过以下方法将传递到所需字符串末尾的变量附加到:

print "Nope, that is not a two. That is a", x

你亦可使用:

print "Nope, that is not a two. That is a %d" % x #assuming x is always an int

您可以使用 %运算符(模)访问其他有关字符串格式化的 文件

你只需要做:

print 'lakjdfljsdf', # trailing comma

然而在:

print 'lkajdlfjasd', 'ljkadfljasf'

存在隐式空格(即 ' ')。

你还可以选择:

import sys
sys.stdout.write('some data here without a new line')

Python 2. x中,只需在 print语句的末尾加上一个 ,即可。如果希望避免 print在项目之间放置的空白,请使用 sys.stdout.write

import sys


sys.stdout.write('hi there')
sys.stdout.write('Bob here.')

收益率:

hi thereBob here.

请注意,在这两个字符串之间有 没有换行空白处

Python 3. x和它的 Print ()函数中,你可以说

print('this is a string', end="")
print(' and this is on the same line')

然后得到:

this is a string and this is on the same line

还有一个名为 sep的参数,您可以在 Python 3.x 打印时设置它,以控制如何分隔相邻的字符串(或者不依赖于分配给 sep的值)

例如:

Python 2. x

print 'hi', 'there'

给予

hi there

Python 3. x

print('hi', 'there', sep='')

给予

hithere

如果您使用的是 Python 2.5,那么这种方法不会起作用,但是对于使用2.6或2.7的用户,可以尝试一下

from __future__ import print_function


print("abcd", end='')
print("efg")

结果出来了

abcdefg

对于那些使用3.x 的用户,这已经是内置的了。