如何创建将字符串句子翻译为Pyglatin的代码?

时间:2016-05-26 21:07:17

标签: python translate

我有一个python代码将一个措辞字符串翻译成pyglatin,如下所示:

pyg = 'ay'
original = raw_input('Enter a word:')
if len(original)>0 and original.isalpha():
    word = original.lower()
    first = word[0]
    rest = word[1:]
    new_word = rest+first+pyg
print new_word

然而,我对如何将整个句子翻译成Pyglatin感到困惑。我正在处理的问题有以下几个条件:对于以辅音开头的单词,所有初始辅音都移到单词的末尾并附加'ay'。对于以元音开头的单词,初始元音仍然存在,但“方式”被添加到单词的结尾。 例如,字符串'你今天好吗?'是'owhay areway uoyay odaytay?'

3 个答案:

答案 0 :(得分:0)

读一句话。将其分解为单个单词(拆分方法)。将每个单词翻译成Pig Latin。连接翻译。

这会让你感动吗?

答案 1 :(得分:0)

试试这个。使用split并将其放入空字符串中。

position: relative;

答案 2 :(得分:0)

这是我的尝试,但如果你自己不做,至少要尝试理解它。 (你可以自由地问) 这具有处理特殊字符的基本能力,例如"?"

def pygword(word):
    vowels = 'aeiou'
    if     word[0] in vowels:
        return word + 'way'
    else:
        while word[0] not in vowels:
            word = word[1:]+word[0]
        return word + "ay"

def pygsentence(sentence):
    final = ''
    for word in sentence.lower().split():   #split the sentence
        #words should only end in symols in correct grammar
        if word[-1] in '.,;:!?':
            symbol = word[-1]
            word = word[:-1]
        else:
            symbol = ''

        if word.isalpha(): #check if word is alphanumerically
            final += pygword(word)+symbol+' '
        else:
            return "There is a strange thing in one of your words."

    return final[:-1]    #remove last unecessary space

可能会有更快,更强大,更简单,更易理解的方法,但这就是我的开始。

测试让我:

In[1]: pygsentence("How are you today? I am fine, thank you very much good sir!")
Out[1]: 'owhay areway ouyay odaytay? iway amway inefay, ankthay ouyay eryvay uchmay oodgay irsay!'

你的代码不符合元音/辅音规则,所以我为单个单词做了我自己的转换器。

刚刚意识到它无法在言语中处理灾难(我们真的没有德语中的那些;))所以还有一点任务给你。

编辑:我不知道你想要辅音的顺序,因为你的例子并不清楚。所以我做了另一个pygword函数:

def pygword2(word):
    vowels = 'aeiou'
    if word[0] in vowels:
        return word + 'way'
    else:
        startcons = ''
        while word[0] not in vowels:
            startcons =  word[0] +startcons
            word = word[1:]
        word = word+startcons
        return word + "ay"

见不同之处:

In[48]: pygword("street") Out[48]: 'eetstray' In[49]: pygword2("street") Out[49]: 'eetrtsay'