Python Pig Latin Converter(以辅音开头的词)

时间:2018-07-24 22:58:10

标签: python python-3.x

我正在尝试将字符串转换为猪拉丁。在线上的大多数示例都没有考虑到如果单词以多个辅音开头,则必须将所有辅音移到末尾(学校-> oolschay)。我的版本目前正在处理第一个字母为元音的功能,并且抓取了不以元音开头的单词,但是,我不知道如何阻止它抓住单词中的每个元音实例,而不是只是一审。

代码如下:

pigLatin = input("Convert message to pig latin: ")
wordList = pigLatin.lower().split(" ")
vowels = ['a', 'e', 'i', 'o', 'u']
pigLatin = []
eachWord = []
for word in wordList:
    if word[0] in 'aeiou': #case where vowel is first
        pigLatin.append(word + 'yay')
    if word[0] not in 'aeiou':
        for letter in word:
            if letter in 'aeiou':
                pigLatin.append(word[word.index(letter):] + word[:word.index(letter)] +'ay')


print(" ".join(pigLatin))

1 个答案:

答案 0 :(得分:0)

您可以在内部的for循环中添加一个break语句,该语句遍历每个单词。找到元音后,它将跳出循环。或者至少我认为这就是您遇到的问题(您的问题有点令人困惑。)

尝试一下:

pigLatin = input("Convert message to pig latin: ")
wordList = pigLatin.lower().split(" ")
vowels = ['a', 'e', 'i', 'o', 'u']
pigLatin = []
eachWord = []
for word in wordList:
    if word[0] in 'aeiou': #case where vowel is first
        pigLatin.append(word + 'yay')
    else:
        for letter in word:
            if letter in 'aeiou':
                pigLatin.append(word[word.index(letter):] + word[:word.index(letter)] +'ay')
                break


print(" ".join(pigLatin))

我还通过放置了else而不是if word[0] not in 'aeiou':来使您的代码风格更好了

快乐编码!