[英]Concatenating in for loop
这是一个将用户输入的字符串反向的循环,它会反向读取字母并将其放入句子中。 问题是,例如用户的输入是hello,代码的最后一行中的comma(,)使输出变为olleh,但是如果那里没有逗号,则输出将在一行中包含每个字母。 和串联(+)不起作用,它会给出一个错误。 我该怎么做,以便输出将是olleh而不是olleh?
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
将其转换回字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.