Python句子反转器

时间:2015-09-30 15:39:00

标签: python python-2.7 reverse

我正在尝试在python中创建一个程序,用户输入一个句子并打印出反向判刑。我到目前为止的代码是:

sentence = raw_input('Enter the sentence')
length = len(sentence)

for i in sentence[length:0:-1]:
    a = i
    print a,

当程序运行时,它会错过最后一个字母,所以如果单词是'hello',它将打印'olle'。任何人都可以看到我的错误吗?

5 个答案:

答案 0 :(得分:3)

您需要从索引范围中删除0,但您可以使用:

sentence[length::-1]

也不是那样你不需要循环你的字符串并使用额外的分配,甚至length你只需打印反转的字符串即可。

所以下面的代码将为您完成这项工作:

print sentence[::-1]

演示:

>>> s="hello"
>>> print s[::-1]
'olleh'

答案 1 :(得分:1)

尝试此操作:使用MAP功能避免出现问题

mySentence = "Mary had a little lamb"

def reverseSentence(text):
     # split the text
     listOfWords = text.split()

     #reverese words order inside sentence
     listOfWords.reverse()

     #reverse each word inside the list using map function(Better than doing loops...)
     listOfWords = list(map(lambda x: x[::-1], listOfWords))

     #return
     return listOfWords

print(reverseSentence(mySentence))

答案 2 :(得分:0)

切片表示法的第二个参数意味着"最多但不包括"所以sentence[length:0:-1]将循环到0,但不是0。

修复方法是明确地将0更改为-1,或将其保留(首选)。

for i in sentence[::-1]:

答案 3 :(得分:0)

print ''.join(reversed(raw_input('Enter the sentence')))

答案 4 :(得分:0)

你走了:

sentence = raw_input('Enter the sentence')
length = len(sentence)

sentence  = sentence[::-1]
print(sentence)

享受!

一些解释,重要的一行sentence = sentence[::-1]是使用Python的切片表示法。详细here

语法的这种杠杆反转了可迭代字符串中项的索引。结果是你正在寻找的反向句子。