我正在尝试打印结果,例如:
for record in result:
print varone,vartwo,varthree
我试图连接来自SQL查询的变量,但我得到了空格。如何从“打印”中删除空格?我应该将结果输入变量然后执行'strip(newvar)'然后打印'newvar'吗?
答案 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