Python3反转输入的句子

时间:2018-11-13 08:12:05

标签: python-3.x

我正在尝试创建一个函数来反转用户输入的句子,但是当我运行该程序时,却没有得到相反的句子。贝娄是我的代码

sentence=input('Enter a sentence: ')

def sentence_reverse(sentence):
    words=sentence.split()
    newsentence=words.reverse()
    return (newsentence)

print(sentence_reverse(sentence))

5 个答案:

答案 0 :(得分:1)

def sentence_reverse(s):
    return ' '.join(s.split()[::-1])

print(sentence_reverse(sentence))

答案 1 :(得分:0)

你可以做到

 def reverse(s):
    if len(s) == 0:
        return s
    else:
        return reverse(s[1:]) + s[0]

或:

def reverse2(s):
    return s[::-1]

答案 2 :(得分:0)

reverse()是就地操作,这意味着它本身会反转words并且不返回任何内容。因此,您不想返回newsentence,而是想像这样返回words

sentence=input('Enter a sentence: ')

def sentence_reverse(sentence):    
    words=sentence.split()
    words.reverse()
    return words

print(sentence_reverse(sentence))

>>>Enter a sentence: hello world
>>>['world', 'hello']

答案 3 :(得分:0)

欢迎使用StackOverflow!

原因是因为您正在使用split(),但是它不会将输入字符串转换为其字符列表。它只是用一个元素组成一个列表,这就是您的输入字符串。而是使用list()函数将字符串转换为列表,然后使用join()函数将其转换回字符串。除此之外,reverse()不返回任何内容。因此,您必须改为返回words变量。

sentence=input('Enter a sentence: ')

def sentence_reverse(sentence):
    words=list(sentence)
    words.reverse()
    return ''.join(words)

print(sentence_reverse(sentence))

答案 4 :(得分:0)

这是解决问题的最简单方法:

sentence=input('Enter a sentence: ')

def sentence_reverse(sentence):
    words= sentence.split() # breaks the sentence into words
    rev_sentence= ''
    for word in words:
        rev_sentence = ' ' + word + rev_sentence
    return rev_sentence

print(sentence_reverse(sentence))

输入:Hi please reverse me

输出:me reverse please Hi

希望这对您有所帮助。请让我知道是否还有其他需要。