在for循环中连接

时间:2013-12-15 19:28:59

标签: python

它是一个循环来反转用户输入的字符串,它反向读取字母并将它们放入一个句子中。问题是,例如用户的输入是hello,代码的最后一行中的逗号(,)使输出为低,但如果没有逗号,则输出将在每行中包含每个字母。并连接(+)不起作用它给出了一个错误。我怎么做才能输出olleh而不是o?l?

phrase = raw_input("Enter a phrase to reverse: ")
end = (len(phrase))-1
for index in range (end,-1,-1):
    print phrase[index],

2 个答案:

答案 0 :(得分:2)

怎么样:

string = ''
for i in range(end, -1, -1):
    string += phrase[i]

print string

但是,没有for循环的更简单,更简洁的方法是:

print phrase[::-1] # this prints the string in reverse

还有:

#As dougal pointed out below this is a better join
print ''.join(reversed(phrase))
#but this works too...
print ''.join(phrase[i] for i in range(end, -1, -1)) # joins letters in phrase together from back to front 

答案 1 :(得分:1)

要连接某些内容,您必须有一个要连接的字符串。在这种情况下,您需要一个在for循环之外定义的变量,以便您可以在for循环中多次访问它,如下所示:

phrase = raw_input("Enter a phrase to reverse: ")
end = (len(phrase))-1
mystr = ""
for index in range (end,-1,-1):
    mystr += phrase[index]
print mystr

请注意,您也可以在Python中简单地反转一个字符串:

reversedstr = mystr[::-1]

这是技术上的字符串切片,使用第三个运算符来反转字符串。

另一种可能性是

reversedstr = ''.join(reversed(mystr))

reversed返回传递它的迭代器的反向迭代器,这意味着你必须使用''.join将其转换回字符串