Python Pig拉丁语-处理辅音

Python Pig拉丁语-处理辅音,python,Python,我目前正在用python编写我的Pig拉丁语代码。我遇到两个错误,第一个是处理辅音。如果一个单词以两个辅音开头,两个字母都会移到末尾,并附加“ay”:例如,grade变为adegray 我的第二个问题是,当我尝试运行下面的代码时,出现无效语法错误: #猪拉丁语 清管器=(“ay”) word=输入(“输入单词”)#提示输入短语并将结果分配给变量 元音=“aeiou”#元音列表 words=word.split() #一字不差 对于范围内的i(len(word)):#将短语的第一个字母指定给字符

我目前正在用python编写我的Pig拉丁语代码。我遇到两个错误,第一个是处理辅音。如果一个单词以两个辅音开头,两个字母都会移到末尾,并附加“ay”:例如,grade变为adegray

我的第二个问题是,当我尝试运行下面的代码时,出现无效语法错误:

#猪拉丁语
清管器=(“ay”)
word=输入(“输入单词”)#提示输入短语并将结果分配给变量
元音=“aeiou”#元音列表
words=word.split()
#一字不差
对于范围内的i(len(word)):#将短语的第一个字母指定给字符串变量,以便以后使用
如果元音中的单词[i][0]:#第一个字母是元音吗
打印(单词[i]+'way')#如果第一个字母是元音,则打印单词+'way'
elif单词[i][1]的元音:
print(word[i][1:][word[i][0]+'ay'#将短语的第二个字母指定给字符串变量,以备以后使用
其他:
打印(单词[i]+[1:][=('ay')#否则打印单词时,将前两个字母移到末尾并添加'ay'
关于我修复的内容的一些注释:

  • 您的语法错误是由于未闭合的括号造成的

  • 你的for循环中出现了一些奇怪的东西,你在一些地方有
    word
    ,你应该有
    words

  • 我能够使用更多的列表切片来处理单词以两个元音开头的情况

  • 我在print语句的末尾添加了逗号,这样每个单词后面就没有换行符(它将所有单词打印在一行上,就像它们被输入的方式一样)

  • input()
    是我所想要的数字,你想要的是
    raw\u input()

  • 关于我修复的内容的一些注释:

  • 您的语法错误是由于未闭合的括号造成的

  • 你的for循环中出现了一些奇怪的东西,你在一些地方有
    word
    ,你应该有
    words

  • 我能够使用更多的列表切片来处理单词以两个元音开头的情况

  • 我在print语句的末尾添加了逗号,这样每个单词后面就没有换行符(它将所有单词打印在一行上,就像它们被输入的方式一样)

  • input()
    是我所想要的数字,你想要的是
    raw\u input()


  • 谢谢@setholopolus,我使用了您的建议和修复,由于某种原因,raw_input()返回时出现了一个错误,我可以通过使用input()使它工作。啊,您一定是在使用Python 3。我使用的是2.7。对于2.7,我所说的关于
    input()
    vs.
    raw_input()的(大部分)是正确的
    请参见此处:谢谢@setholopolus,我使用了您的建议和修复程序使其正常工作,出于某种原因,原始输入()返回时出现错误,我仅使用输入()就可以使其正常工作。啊,您一定是在使用Python 3。我使用的是2.7。对于2.7,我所说的关于
    input()
    vs.
    raw\u input())
    请参见此处:
    #Pig latin
    
    pig= ("ay")
    word = raw_input("Enter a word: ")# prompt for a phrase and assign result to a variable
    vowels="aeiou" # list of vowels
    
    words = word.split()
    
    for i in range(len(words)):
        if words[i][0] in vowels: # is first letter a vowel 
            print words[i] + 'way', # if first letter is a vowel, print word + 'way'
        elif words[i][1] in vowels:
            print words[i][1:] + word[i][0] + 'ay', # assign second letter of phrase to a string variable, for later use
        else:
            print words[i][2:] + words[i][0:2] + 'ay', # otherwise print word with first two letters moved to end & added 'ay'