144

我今天开始编程,遇到了 Python 的这个问题。这很愚蠢,但我不知道该怎么做。当我使用 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),则给出:

不,那不是2,那是
3

因此,要么我需要让 Python 将打印行内的我的 (x) 识别为数字;或打印两个不同的东西,但在同一行。在此先感谢并为这样一个愚蠢的问题感到抱歉。

重要提示:我使用的是2.5.4 版

另一个注意事项:如果我print "Thing" , print "Thing2"在第二次打印时说“语法错误”。

4

5 回答 5

195

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

请注意,尾随逗号仍然会导致在行尾打印一个空格,即它等同于end=" "在 Python 3 中使用。要抑制空格字符,您可以使用

from __future__ import print_function

访问 Python 3 打印功能或使用sys.stdout.write().

于 2012-06-29T17:10:44.127 回答
122

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 在 print 中设置它来控制相邻字符串的分隔方式(或不取决于分配给 的值sep

例如,

Python 2.x

print 'hi', 'there'

hi there

Python 3.x

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

hithere
于 2012-06-29T17:18:04.533 回答
24

如果您使用的是 Python 2.5,这将不起作用,但对于使用 2.6 或 2.7 的人,请尝试

from __future__ import print_function

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

结果是

abcdefg

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

于 2012-06-29T17:18:07.763 回答
12

你只需要这样做:

print 'lakjdfljsdf', # trailing comma

然而在:

print 'lkajdlfjasd', 'ljkadfljasf'

有隐式空格(即' ')。

您还可以选择:

import sys
sys.stdout.write('some data here without a new line')
于 2012-06-29T17:16:08.013 回答
5

使用尾随逗号来防止出现新行:

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

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

于 2012-06-29T17:11:52.857 回答