它是一个循环来反转用户输入的字符串,它反向读取字母并将它们放入一个句子中。问题是,例如用户的输入是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],
答案 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
将其转换回字符串