使用Python反转句子中的单词

时间:2019-05-01 22:29:21

标签: python-3.x jupyter-notebook

问题是:返回一个句子,并加上相反的字词

>>> master_yoda('I am home')
'home am I'

它最终将使行中的单词反转。

我正在Jupyter Notebook中学习和执行Python。

def master_yoda(string):
    l = string.split()``
    p = len(string) - 1
    final = ''
    while p<0:
        final = final + ' ' + s[p]
        p = p-1
        print (final)
master_yoda('Hello my name is Aryan')

输出为空。 没有语法错误,但仍然没有输出...

2 个答案:

答案 0 :(得分:1)

该代码的最大问题是您正在测试p < 0,但是由于p以一个正值开始,因此该代码永远不会进入while循环。您确实应该已经测试过p >= 0。下面的代码应该可以完成您想要的事情,它们似乎使您可以做到:

def master_yoda(string):
    l = string.split()
    p = len(l) - 1
    final = l[p]
    p -= 1
    while p >= 0:
        final += ' ' + l[p]
        p -= 1
    return final

请注意,如果将空字符串作为输入传递,则此实现将失败。我试图保持代码本着您自己的精神,检查空字符串会使代码更复杂。最简单,最可靠的解决方案是:

def master_yoda(string):
    return ' '.join(reversed(string.split()))

答案 1 :(得分:1)

也许您应该尝试一下。

def master_yoda(string):
    reversed_list = string.split(' ')
    reversed_list.reverse()
    reversed_string = ' '.join(reversed_list)
    print(reversed_string)

master_yoda("i am home")