【问题标题】:Pig Latin Translator won't give out a word猪拉丁语翻译一个字都不会说
【发布时间】:2016-11-01 19:16:03
【问题描述】:

您好,我需要完成一个正在工作的 Pig 拉丁语翻译课程。翻译者应该使用一个单词,如果它以元音开头,则在末尾添加“ay”,如果它以辅音开头,则将辅音放在后面,然后添加“ay”,它应该继续向后移动,直到遇到一个元音。例如单词“tree”应该变成“eetray”。我不确定我在哪里出错了,但是当我运行它时它不会给我任何东西,所以如果我输入“树”它只会重新启动代码并再次询问一个词。欢迎任何帮助。谢谢!

vowels = "AEIOU" 
realLetters = "abcdefghijklmnopqrstuvwxyz"
while true:
     isRealWord = True
 word = raw_input ("Please tell me a word to translate: ").lower()
 for letter in range(len(word)):
     if word[letter] in realLetters:
         continue
     else:
         print "That is not a real word. Just leave."
         isRealWord = False

 if isRealWord == True:
    firstLetter = word[0]
    secondLetter = word[1]
    thirdLetter = word[2]

    pigWord0 = word + "ay"

    TheRestOfTheWord = word[1:]
    pigWord1 = TheRestOfTheWord + firstLetter + "ay"

    TheRestOfTheWord = word[2:]
    pigWord2 = TheRestOfTheWord + firstLetter + secondLetter + "ay"

    TheRestOfTheWord = word[3:]
    pigWord3 = TheRestOfTheWord + firstLetter + secondLetter + thirdLetter + "ay"

    if pigWord0[0] in vowels:
        print pigWord0.lower()
    elif pigWord1[0] in vowels:
        print pigWord1.lower()
    elif pigWord2[0] in vowels:
        print pigWord2.lower()
    elif pigWord3[0] in vowels:
        print pigWord3.lower()

【问题讨论】:

  • 我认为您需要修复缩进。
  • 并使用正确的引号
  • 很明显,通过编辑您的代码,您实际上并没有尝试运行它:通过基本语法修复,它可以毫无问题地运行。没有修复它会失败并给出有用的错误:非标准字符串,错误缩进
  • 您预计您的while True: 循环何时会中断?它不检查isRealWord 的值。但是,目前,这是一个 NameError,因为您没有大写 True
  • 我已经复制了您的问题并有一个解决方案:一旦您解决了缩进和语法问题,我将发布并解释如何解决它。

标签: python python-2.7


【解决方案1】:

我怀疑缩进/语法错误是 SO 和/或延迟复制的问题,因为我可以使用固定代码复制您的失败示例:

vowels 列表全部大写外,所有内容均以小写形式进行比较。它必须是aeiou,如A != a,其他的都是小写。

你仍然需要修正你的语法,但这解决了所提出的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多