如何在Python中识别并移动辅音簇实现Pig Latin翻译器?
Pig Latin翻译器:辅音簇处理问题解决
作为Python新手,我需要开发一个Pig Latin翻译器,功能是读取origin.txt文件内容,将其转换为Pig Latin后输出到piglatin.txt。最初的代码只能处理单个辅音开头的单词,无法实现辅音簇移至词尾的逻辑,经过多日查找资料后终于找到了解决方案。
初始代码
def main(): vowels = ['a', 'e', 'i', 'o', 'u', 'y'] # pigFile = open('C:\Users\grink\OneDrive\Desktop\project\origin.txt', 'r') pigFile = open('origin.txt', 'r') pigOut = open('piglatin.txt', 'w') for line in pigFile.readlines(): pigList = line.split() t = translate(pigList, vowels) print("Input: ", pigList) print("Converted: ", t) # w = write(t, pigOut)' writeplatin(t, pigOut) pigFile.close() def translate(pigList, vowels): newPigList = [] for word in pigList: if word[0] in vowels: # if the word starts with vowel newPigList.append(word + "way ") #add to new list else: #if not vowel newPigList.append(word[1:] + word[0] + "ay") return newPigList def writeplatin(pigList, pigOut): # pigOut.write(" ".join(pigList)) for word in pigList: pigOut.write(word + '\n') main()
解决后代码
def main(): vowels = ['a', 'e', 'i', 'o', 'u', 'y'] # pigFile = open('C:\Users\grink\OneDrive\Desktop\project\origin.txt', 'r') pigFile = open('origin.txt', 'r') pigOut = open('piglatin.txt', 'w') for line in pigFile.readlines(): pigList = line.split() t = translate(pigList, vowels) print("Input: ", pigList) print("Converted: ", t) # w = write(t, pigOut)' writeplatin(t, pigOut) pigFile.close() def translate(pigList, vowels): newPigList = [] for word in pigList: if word[0] in vowels: # if the word starts with vowel newPigList.append(word + "way ") #add to new list else: for pos in range(1, len(word)): if word[pos] in vowels: pos += 1 if word[pos] == 'u' and word[pos - 1] == "q" else 0 newPigList.append(word[pos:] + word[:pos] + "ay") break return newPigList def writeplatin(pigList, pigOut): # pigOut.write(" ".join(pigList)) for word in pigList: pigOut.write(word + '\n') main()
内容的提问来源于stack exchange,提问作者Mehemynx
相关产品推荐
相关产品推荐

