在Python中将句子转换为pig latin

时间:2014-04-20 00:50:14

标签: python python-3.x

我必须用Python编写一个程序,将句子转换为pig Latin。 Pig Latin被宽松地定义为取每个单词的第一个字母,将其放在单词的末尾,并添加" ay"到每个单词的结尾。我无法弄清楚如何将第一个字母与字符串中的每个单词分开,更不用说将它添加到结尾了。我假设一旦我将其删除,就可以将它连接到新单词然后连接" AY"同样。我在这里极度迷失。经过大量的试验和错误这就是我所拥有的一切,即使这似乎也没有成功。非常感谢任何帮助。

def main():        
    sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
    sentence_list = sentence.split()

    for part in sentence_list:
        first_letter = part[0]

main()

2 个答案:

答案 0 :(得分:2)

以下是代码:

def main():
        lst = ['sh', 'gl', 'ch', 'ph', 'tr', 'br', 'fr', 'bl', 'gr', 'st', 'sl', 'cl', 'pl', 'fl']
        sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
        sentence = sentence.split()
        for k in range(len(sentence)):
                i = sentence[k]
                if i[0] in ['a', 'e', 'i', 'o', 'u']:
                        sentence[k] = i+'ay'
                elif t(i) in lst:
                        sentence[k] = i[2:]+i[:2]+'ay'
                elif i.isalpha() == False:
                        sentence[k] = i
                else:
                        sentence[k] = i[1:]+i[0]+'ay'
        return ' '.join(sentence)

def t(str):
        return str[0]+str[1]

if __name__ == "__main__":
        x = main()
        print(x)

运行方式:

bash-3.2$ python3 pig.py
Type what you would like translated into pig-latin and press ENTER: my gloves are warm
ymay ovesglay areay armway
bash-3.2$ 

此代码使用找到的逻辑here

答案 1 :(得分:0)

这是一个快速的

def main():
    words = str(input("Input Sentence:")).split()
    for word in words:
        print(word[1:] + word[0] + "ay", end = " ")
    print ()

main()

更好的解决方案可能会使用列表理解,因此您可以实际使用输出,但这样做可以满足您的要求。

编辑: 这适用于python3.x 如果你想让它适用于python2,你将会有更多的乐趣。只需为每个单词添加字符串,然后打印结果字符串。