2016-11-28 85 views
-3

我有这样的代码:功能以颠倒顺序的句子

text = str(input('Input sentence, please: ')) 

def reverse(text): 
    r_text = '' 
    index = len(text) - 1 

    while index >= 0: 
     r_text += text[index] 
     index -= 1 

    return r_text 

print(reverse(text)) 

但输出例如:怎么了 - > PU stahW,我需要它是 - >高达请告诉我

换句话说:

写一个函数的伪代码和代码,使句子中的单词反转。

输入

"This is awesome" 

输出

"awesome is This". 

给大O符号。在功能

>>> " ".join("Hello world".split()[::-1]) 
'world Hello' 

,或者,如果你想让它:

回答

0

你可以做到这一点

>>> def reverse(text): 
...  return " ".join(text.split()[::-1]) 
... 
>>> reverse("Hello world") 
'world Hello' 
1

split应该工作。这是由空白块。然后颠倒阵列。最后加入对'

a = "What's up" 

bits = a.split() 
print(bits) # yields: ["What's", 'up'] 

bits_reversed = bits[::-1] 
print(bits_reversed) # yields: ['up', "What's"] 

print(' '.join(bits_reversed)) 
+0

我得到一个奇怪的输出: '[ “这是什么”, '向上'] [ '向上', “什么是”] 了什么 ' –

+0

加入在'''上的数组'见编辑 – Shaun

+0

@ErikTonev这是因为有三个打印语句来显示答案正在做什么。 –

4
def reverse_order(sentence): 
    return ' '.join(sentence.split(' ')[::-1]) 
+0

我相信'split'的参数是多余的。 ('.split()'足够) – Alec

+0

@Alec唔,不完全是。如果没有争论,它将在任何空白区域分裂,而不仅仅是空间。但是,我不确定哪一个是最好的。 –

0

反向阵列可以使用reverse()功能list

s = "What's up" 
l1 = s.split() 
l1.reverse() 
res = ' '.join(l1) 

输出:

>>> res 
"up What's" 

在自定义功能:

def reverse_sentence(s): 
    l = s.split() 
    l.reverse() 
    return ' '.join(l) 

输出:

>>> reverse_sentence("What's up") 
"up What's"