Python 串联for循环

Python 串联for循环,python,Python,这是一个循环,用于反转用户输入的字符串,它反向读取字母并将其放入句子中。问题是,例如,用户的输入是hello,代码最后一行中的逗号(,)使输出为o l e h,但如果那里没有逗号,则输出将在一行中包含每个字母。而concatenate(+)不起作用,它给出了一个错误。我该怎么做才能使输出是olleh而不是OleH phrase = raw_input("Enter a phrase to reverse: ") end = (len(phrase))-1 for index in range (

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

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

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 

要连接某个对象,必须有一个要连接的字符串。在这种情况下,您需要一个在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

您必须为此使用for循环吗?因为,如果不是的话,你可以简单地这样做:
短语[::-1]
@iCodez每当我在问题中看到“for循环”和“反转字符串”,我总是认为这是一个家庭作业。“while-loop”或“palindrome”也是如此。@iCodez这可能是因为所有的CS教授都更了解C/C++,并且只将python作为“服务”类进行教学,所以他们从不费心学习惯用python。他们可能只是教他们教C++的方式。这也解释了为什么我们在python中使用setter/getter时会看到这么多问题。与第三种方法等效的更好方法是
'.join(反转(短语))
<代码>短语[:-1]仍然是最好的方法。