python - 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))
解决方案
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':
快乐编码!
推荐阅读
- javascript - 如果输入有值,如何将输入标签放在顶部
- ios - IOS - 当滑块值改变时设置 UILabel Swift
- haskell - 特定函数名称“it”会发生什么?
- asp.net-core - 如何在 .NET Core - Web API 中根据文化显示正确的资源语言?
- c# - C# Linq - 根据用户输入创建动态选择查询
- git - Git忽略文件仍列在未跟踪列表中
- html - 如何创建一个跨越大屏幕两列和移动设备一列的列表?
- django - Ajax 没有向 django 视图发送数据
- python - 如何使用 Python 在多个 Excel 工作表中附加不同的表格?
- python - 将信息从 CSV 保存到文本