我正在尝试将字符串转换为猪拉丁。在线上的大多数示例都没有考虑到如果单词以多个辅音开头,则必须将所有辅音移到末尾(学校-> 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))
答案 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':
来使您的代码风格更好了
快乐编码!