我的方法在自己的程序中被识别了,可能是菜鸟错误

1 投票
6 回答
737 浏览
提问于 2025-04-15 20:40

这是我的代码:

sentenceToTranslate = raw_input("Please write in the sentence you want to translate: ")
words = sentenceToTranslate.split(" ")

for word in words:
    if isVowel(word[0]):
        print "TEST"


def isVowel(letter):
    if letter.lower() == "a" or letter.lower() == "e" or letter.lower() == "i" or letter.lower() == "o" or letter.lower() == "u":
        return True
    else:
        return False

我遇到的错误是:

名称错误:'isVowel'这个名字没有定义

我哪里出错了?

6 个回答

1

Python会从上到下执行你在模块中写的所有语句。当你尝试调用isVowel这个函数时,其实这个函数还没有被定义。也就是说,Python解释器还没有看到那段代码。

如果你把isVowel的定义放在文件的最上面,你就可以正常调用它了。

2

def isVowel这个函数的定义放在最上面。

你在调用这个函数之后才定义它。因为源代码是不经过编译的,而是在运行时解释的,所以它不会检查这个错误。

另外,你可以这样重新定义这个函数:

def isVowel(letter):
    if letter.lower() in "aeiou":
        return True
    else:
        return False
5

这个函数还没有被定义,所以名字'isVowel'并没有和任何功能绑定在一起:只有当你写下"def"的时候,这种绑定才会发生。

解决办法是把你的代码放在def isVowel(letter)下面。

撰写回答