python打印和空白

时间:2010-11-16 12:04:51

标签: python

我正在尝试打印结果,例如:

for record in result:
    print varone,vartwo,varthree

我试图连接来自SQL查询的变量,但我得到了空格。如何从“打印”中删除空格?我应该将结果输入变量然后执行'strip(newvar)'然后打印'newvar'吗?

4 个答案:

答案 0 :(得分:4)

此:

print "%s%s%s" % (varone,vartwo,varthree)

会将引号中的第一个%s替换为varone中的值,将第二个%s替换为vartwo的内容,等等。

修改
从Python 2.6开始,您应该更喜欢这种方法:

print "{0}{1}{2}".format(varone,vartwo,varthree)

(谢谢Space_C0wb0y)

答案 1 :(得分:1)

print在变量之间放置空格并发出换行符。如果这只是打扰你的字符串之间的文件空间,只需在打印前连接字符串。

print varone+vartwo+varthree

真的,有很多方法可以做到这一点。在打印之前总是会创建一个组合您的值的新字符串。以下是我能想到的各种方式:

# string concatenation
# the drawback is that your objects are not string
# plus may have another meaning
"one"+"two"+"three"

#safer, but non pythonic and stupid for plain strings
str("one")+str("two")+str("three")

# same idea but safer and more elegant
''.join(["one", "two", "three"])

# new string formatting method
"{0}{1}{2}".format("one", "two", "three")

# old string formating method
"%s%s%s" % ("one", "two", "three")

# old string formatting method, dictionnary based variant
"%(a)s%(b)s%(c)s" % {'a': "one", 'b': "two", 'c':"three"}

您还可以避免完全创建中间连接字符串,并使用write而不是print。

import sys
for x in ["on", "two", "three"]:
    sys.stdout.write(x)

在python 3.x中,您还可以自定义打印分隔符:

print("one", "two", "three", sep="")

答案 2 :(得分:0)

尝试

for record in result:
    print ''.join([varone,vartwo,varthree])

答案 3 :(得分:0)

在将字符串传递给print命令之前,只需使用字符串格式:

for record in result:
    print '%d%d%d' % (varone, vartwo, varthree)

了解Python字符串格式here