结束

时间:2016-01-12 23:41:30

标签: python python-2.7

我知道已有逆向解决方案,但无法为以下问题找出概念。

  。是的,我们看到了自己的最终结果,这是一个很好的结局

所以它返回

  玛丽有一只小羊羔,它的羊毛像雪一样白。

我离得很远吗?

 line=raw_input()
 lines = []
 i = 0
 while line != "end":
     lines.append(line)
     line=raw_input()
 for line in lines[::-1]:
 print line

2 个答案:

答案 0 :(得分:0)

这里有一些调整内容。

看起来你想要保持逆转用户输入,直到输入结束'

更简单的方法是:

while True:                         # to set the loop going
    line = raw_input()
    if line == 'end': break         # to exit the loop

在此之后,如果输入不是'结束',则默认为您的撤消代码:

    print line[::-1]      # notice the indentation

这是光滑的索引。

如果你想保存反转的字符串,这是另一回事,但你不清楚你想要这样做。

这不会处理一个包含' end'在末尾 。 。 。这是一个必不可少的部分吗?因为它对我来说似乎没什么必要。

如果'结束'总是在那里(有或没有while循环):

line = raw_input()
print line[-5::-1]

这将扭转整个事情,但将会结束'结束'首先是结束。

如果这没有帮助,您能否提供一些有关您想要达到的目标的更多信息?

答案 1 :(得分:-2)

我假设您的所有输入都已累积在一个字符串中,并且结束标记已被删除。总体战略是:

  • 将您的原始文本行拆分为一个单词数组
  • 逐步翻阅每个单词,反转单词字符串
  • 颠倒词汇数组中条目的顺序
  • 将数组条目与中间空格连接起来。

在代码中(首先按步骤分解):

line = ".wons sa etihw saw eceelf sti bmal elttil a dah yraM"
words = line.split(" ")
words_letters_reversed = [ w[::-1] for w in words]
word_order_reversed = list(reversed(words_letters_reversed))
reassembled_into_a_string = " ".join(word_order_reversed)
print(reassembled_into_a_string)

=> “玛丽有一只小羊羔,它的羊毛像雪一样白。”

然后一下子:

result = " ".join(list(reversed(([ w[::-1] for w in line.split(" ")]))))
print(result)

=> “玛丽有一只小羊羔,它的羊毛像雪一样白。”