You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:06:02