从英语到猪拉丁语的翻译

时间:2016-02-03 16:30:22

标签: python python-3.x

我参与了PigLatin翻译的一部分'程序。 这是我现在正在写作的部分。

    input_str = input("Input a word: ")

    consonant_check = 0
    while input_str[int(consonant_check)] != 'a' or 'e' or 'i' or 'u':

        output_str = input_str[:int(consonant_check)] + input_str[0,int(consonant_check)] + 'ay'
        consonant_check = int(consonant_check) + 1
    else:
        print(output_str)

这部分应该检查单词输入是否以辅音开头。如果是,程序可以从单词的开头删除所有辅音,并将它们附加到单词的末尾。然后追加" ay"到这个词的结尾。    通过在线收集信息,我有一些关于如何实现这一点的线索,但我认为我的代码仍有问题。

3 个答案:

答案 0 :(得分:3)

我会按照你的意图接近它,导致下面的代码。

简而言之,检查字符串的第一个字符。如果它不是元音(not in ['a','e','i','o','u']),请将字符移动到字符串的末尾。继续这样做,直到你碰到一个元音(所以'字符串'变成'然后'敲响'然后' ingstr'在打破循环之前) 。一旦你最后击中元音,你就离开循环,并打印修改过的字符串+' ay'。如果第一个字符是元音,则离开循环并打印字符串+' ay'。

没有必要设置辅音检查 - 你总是检查第一个字符(0)。并且不需要有两个变量 - 只需继续修改和替换原始字符串。

word_string = input("Input a word: ")

while word_string[0] not in ['a','e','i','o','u']:
    word_string = word_string[1:] + word_string[0:1]

else:
    print(word_string + 'ay')

答案 1 :(得分:2)

这不是你问题的直接答案,而是我对猪拉丁问题的解决方案。在学习python时,我发现查看已完成的示例有很大帮助。

word = "snake"

import string

# Create a list of vowels an consonants
vowels   = ['a','e','i','o','u','y']
vowels  += [v.upper() for v in vowels]
consonants = [x for x in string.ascii_letters if x not in vowels]

if word[0] in consonants:
    # Find the first vowel
    idx = min([word.find(v) for v in vowels if word.find(v)>0])

    # Split the word at this point and add 'ay'
    word = word[idx:] + word[:idx] + 'ay'

print(word)
# Returns "akesnay"

答案 2 :(得分:0)

我认为你的逻辑整体有些混乱。我建议像这样处理这个问题。

1。)检查第一个字母是否是辅音,如果没有,则不执行任何操作,如果是,请转到步骤2

2。)查找单词中的所有辅音并将其存储在列表中

3。)如果是,请从单词中删除元音,然后将所有辅音附加到末尾,然后按“'。”

有无限的方法来实际实现这一点,我认为你自己尝试实现它是一个很好的练习,但如果你需要更多帮助,请告诉我。