Python中的for循环无法将输出作为字符串打印

0 投票
3 回答
1796 浏览
提问于 2025-04-30 11:36
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字符串带引号打印,有些不带引号打印?

撰写回答