首页 > 解决方案 > Python Pig Latin 转换器(以辅音开头的单词)

问题描述

我正在尝试将字符串转换为猪拉丁语。大多数在线示例都没有考虑到如果一个单词以多个辅音开头,则必须将所有辅音移到末尾(学校-> 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))

标签: pythonpython-3.x

解决方案


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

尝试这个:

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':

快乐编码!


推荐阅读