我的方法在自己的程序中被识别了,可能是菜鸟错误
这是我的代码:
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)
下面。