Python 名称错误:名称';pigLatin';没有定义

Python 名称错误:名称';pigLatin';没有定义,python,Python,我的代码是: def vowelIndex(wd) : def getInitialCs(wd) : return wd[:vowelIndex(wd)] def getTheRest(wd) : return wd[vowelIndex(wd):] def pigLatin(wd) : if len(wd) == 0: return '' elif wd[0] in 'aeiou' :

我的代码是:

def vowelIndex(wd) :

    def getInitialCs(wd) :
        return wd[:vowelIndex(wd)]

    def getTheRest(wd) :
        return wd[vowelIndex(wd):]

    def pigLatin(wd) :
         if len(wd) == 0: return ''
         elif wd[0] in 'aeiou' :
              return wd + 'way'
         else :
              return getTheRest(wd) + getInitialCs(wd) + 'ay'
当我键入
PigLatin('yellow')
时,发生了以下错误:



我不知道怎么了,请帮我

你需要正确定义
元音索引
,不要把其他函数放在里面(修复缩进)


为什么您的3个函数都是在
voueLindex
函数中定义的?听起来你想在全局范围内定义它们。看起来,好像VoueLindex是一个类,构造函数在其中接收wd参数,然后所有后续方法都可以使用该参数。我在下面的def voueLindex(wd)中添加了一个返回1,但出现了相同的错误。你必须修复缩进。我发布的代码适用于所提供的示例-如图所示,为了获得更多功能,您需要在
vowerindex
中编写适当的算法。
    NameError                                 Traceback (most recent call last)
    <ipython-input-128-e025299840a1> in <module>()
    ----> 1 pigLatin('yellow')

NameError: name 'pigLatin' is not defined
pigLatin('yellow')

'ellowyay'
def vowelIndex(wd):
    return 1          #<-- need a proper algorithm

def getInitialCs(wd):
    return wd[:vowelIndex(wd)]


def getTheRest(wd):
    return wd[vowelIndex(wd):]


def pigLatin(wd):
    if len(wd) == 0:
        return ''
    elif wd[0] in 'aeiou':
        return wd + 'way'
    else:
        return getTheRest(wd) + getInitialCs(wd) + 'ay'

print(pigLatin('yellow'))
ellowyay