嗨,我正在尝试制作一个猪拉丁语翻译器,当我尝试处理以元音开头的单词时出现了问题。目的是,对于以元音开头的单词,后缀将是单词 + "ay" 中的第一个辅音(而不是单词 + "ay" 中的第一个字母)例如 'ear' 将是 '耳朵射线'而不是'ar-eay'
但是,我正在努力寻找一种方法来做到这一点。
这是我到目前为止所拥有的:(它取自较大的代码部分)
elif word[0]=="a" or word[0]=="e" or word[0]=="i" or word[0]=="o" or word[0]=="u":
for letter in word[1:]:
while consonantfound == False:
if letter!="a" and letter!="e" and letter!="i" and letter!="o" and letter!="u":
consonantfound = True
consonant = letter
suffix = consonant + "ay"
newWord = i + "-" + suffix
这使得程序无法产生输出并继续运行。
我觉得问题与循环的顺序有关,但我已经尝试过,但没有解决方案。这也可能是我不知道的其他事情。
你有关于如何使它工作的建议吗?
任何帮助都感激不尽。
试试这个:
VOWELS = ('a', 'e', 'i', 'o', 'u')
def first_consonant(word):
for letter in word:
if letter.lower() not in VOWELS:
return letter
def pig_latin(word):
return '%s-%say' % (word, first_consonant(word) or word[0])
它试图找到单词中的第一个辅音并将 ay 附加到末尾。如果它不存在,则它遵循单词的第一个字母(我不知道这是否正确,但您可以根据自己的需要进行调整)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句