Python:避免使用打印命令的新行
我今天开始编程,并与Python有这个问题。 这是非常愚蠢的,但我不知道如何做到这一点。 当我使用打印命令,它打印任何我想要的,然后去不同的行。 例如:
print "this should be"; print "on the same line"
应该返回:
这应该是在同一行
而是返回:
这应该是
在同一条线上
更确切地说,我试图创build一个程序, 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)
作为input的值,而是恰好打印出“(x)”(带括号的字母)。 为了使它工作,我必须写:
print "Nope, that is not a two. That is a"; print (x)
而且,如果我inputtest2(3)
给出:
不,那不是两个,那是一个
3
所以,要么我需要让Python在打印行内识别我的(x)作为数字; 或打印两个单独的东西,但在同一行。 预先感谢,并为这样一个愚蠢的问题抱歉。
重要说明 :我正在使用版本2.5.4
另一个注意事项:如果我把print "Thing" , print "Thing2"
它说:“语法错误”在第二次打印。
您可以使用尾随逗号来避免打印换行符:
print "this should be", print "on the same line"
不过,您不需要这样简单地打印一个variables:
print "Nope, that is not a two. That is a", x
注意:从Python 3.x及更高版本开始
print("Nope, that is not a two. That is a", x)
在Python 2.x中,只需在print
语句的最后添加一个。 如果要避免在项目之间print
放置的空白,请使用sys.stdout.write
。
import sys sys.stdout.write('hi there') sys.stdout.write('Bob here.')
收益率:
hi thereBob here.
请注意,两个string之间不存在换行符或空格 。
在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打印来设置,以控制相邻string将如何分离(或不取决于分配给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,这已经内置。
你只需要做:
print 'lakjdfljsdf', # trailing comma
但在:
print 'lkajdlfjasd', 'ljkadfljasf'
有隐含的空白(即' '
)。
您也可以select:
import sys sys.stdout.write('some data here without a new line')
利用尾随逗号来防止出现新行:
print "this should be"; print "on the same line"
应该:
print "this should be", "on the same line"
另外,您可以通过以下方式将传递的variables附加到所需string的末尾:
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
您可以使用%
运算符(模数)访问有关string格式的其他文档 。