Python中的for循环无法将输出作为字符串打印
def catenateLoop(strs):
outputString = ""
for strings in strs:
outputString = outputString + strings
print outputString
我正在使用上面的代码,通过一个循环把一组字符串连接成一个字符串。现在代码的输出结果是正确的连接结果,但不知为何,输出的结果并不是一个字符串。例如,catenateLoop(['one', 'two', 'three']) 输出的是 onetwothree,而不是 'onetwothree'。我尝试了几种不同的格式,但就是搞不明白为什么它不以字符串的形式输出。有谁能给点建议吗?
3 个回答
0
你可以使用 str.format
来格式化字符串,并把输出包裹在你想要的任何东西里:
def catenateLoop(strs):
outputString = ""
for strings in strs:
outputString = outputString + strings
print "'{}'".format(outputString)
In [5]: catenateLoop(['one', 'two', 'three'])
'onetwothree'
你也可以用 str.join
来把列表里的内容连接起来:
def catenateLoop(strs):
print "'{}'".format("".join(strs))
0
“print” 这个命令只会显示 outputString 里面的内容。如果你想要显示 outputString 的完整表示(包括引号),可以试试用 “print repr(outputString)”。
1
__repr__
来帮忙啦!
这样做就能得到你想要的结果
def catenateLoop(strs):
outputString = ""
for strings in strs:
outputString = outputString + strings
print repr(outputString)
catenateLoop(['one', 'two', 'three'])
#output: 'onetwothree'
另外,可以看看这个链接:为什么有些Python字符串带引号打印,有些不带引号打印?