将猪拉丁文翻译成英语?

-5 投票
1 回答
1142 浏览
提问于 2025-04-18 01:21

我写了一个简单的程序,可以把英语转换成猪拉丁文(Pig Latin)。但是现在我卡住了,不知道怎么把它再转换回英语。下面是一个英语到猪拉丁文的例子:

输入 hello world this is great

输出

elloXhaWEY orldXwWEY isXthWEY isWAY eatXgrWEY

规则是这样的: 1. 如果单词以元音字母开头,它的结尾加上WAY(例如:eal -> ealWAY) 2. 如果单词以辅音字母开头,就要一直检查,直到遇到元音字母为止,去掉开头的部分,然后再转换(例如:This -> isXthWEY)。注意,去掉的字母前面有个X,后面有个WEY。

我已经做了一个程序可以把单词转换成这样。但是我不知道怎么把这些乱七八糟的字母再转换回英语。

我的想法是从每个单词的末尾开始检查。如果它以WEY结尾,我就去掉最后三个字母,抓取从最后一个字母到遇到X为止的字母,然后去掉X,再把这些字母移到单词的开头。但我不知道该怎么做。

任何帮助都很感谢。

谢谢。

1 个回答

4

像这样吗?

def decode (line):
    return ' '.join (token [:-3]
        if token.endswith ('WAY')
        else (lambda a, b: b [:-3] + a) (*token.split ('X') )
        for token in line.split () )

示例:

>>> decode ('elloXHWEY orldXwWEY isXthWEY isWAY eatXgrWEY')
'Hello world this is great'

注意:可能会对包含'X'的单词失效。不过这应该能帮你入门。

撰写回答