名称为';在我的Python应用程序中找不到
以下是错误:名称为';在我的Python应用程序中找不到,python,Python,以下是错误: keepProgramRunning = True while keepProgramRunning: print "Welcome to the Calculator!" print "Please choose what you'd like to do:" print "0: Addition" print "1: Subtraction" print "2: Multiplication" print "3: Divisi
keepProgramRunning = True
while keepProgramRunning:
print "Welcome to the Calculator!"
print "Please choose what you'd like to do:"
print "0: Addition"
print "1: Subtraction"
print "2: Multiplication"
print "3: Division"
#Capture the menu choice.
choice = raw_input()
#Capture the numbers you want to work with.
numberA = raw_input("Enter your first number: ")
numberB = raw_input("Enter your second number: ")
if choice == "0":
print "Your result is:"
print Addition(numberA, numberB)
elif choice == "1":
print "Your result is:"
print Subtraction(numberA, numberB)
elif choice == "2":
print "Your result is:"
print Multiplication(numberA, numberB)
elif choice == "3":
print "Your result is:"
print Division(numberA, numberB)
else:
print "Please choose a valid option."
def Addition(a, b):
return a + b
def Subtraction(a, b):
return a - b
def Multiplication(a, b):
return a * b
def Division(a, b):
return a / b
回溯(最近一次呼叫最后一次):
文件“C:\Users\Sergio.Tapia\Documents\NetBeansProjects\Tutorials\src\Tutorials.py”,第23行,在
打印添加(编号a、编号b)
名称错误:未定义名称“添加”
谢谢你的帮助
另外,我意识到循环永远不会结束,我还没有添加菜单选项:P
在调用函数之前,需要定义函数
当解释器读取调用
Addition()
的行时,它尚未到达将定义Addition()
的行。因此,它会抛出一个异常。在调用函数之前,需要定义函数
当解释器读取调用
Addition()
的行时,它尚未到达将定义Addition()
的行。因此,它会引发一个异常。对代码进行重新排序,以便在使用函数之前对其进行定义:
Traceback (most recent call last):
File "C:\Users\Sergio.Tapia\Documents\NetBeansProjects\Tutorials\src\tutorials.py", line 23, in <module>
print Addition(numberA, numberB)
NameError: name 'Addition' is not defined
或者,您可以使用main()函数将其置于一切之上:
def Addition(a, b):
return a + b
def Subtraction(a, b):
return a - b
def Multiplication(a, b):
return a * b
def Division(a, b):
return a / b
keepProgramRunning = True
while keepProgramRunning:
print "Welcome to the Calculator!"
print "Please choose what you'd like to do:"
print "0: Addition"
print "1: Subtraction"
print "2: Multiplication"
print "3: Division"
#Capture the menu choice.
choice = raw_input()
#Capture the numbers you want to work with.
numberA = raw_input("Enter your first number: ")
numberB = raw_input("Enter your second number: ")
if choice == "0":
print "Your result is:"
print Addition(numberA, numberB)
elif choice == "1":
print "Your result is:"
print Subtraction(numberA, numberB)
elif choice == "2":
print "Your result is:"
print Multiplication(numberA, numberB)
elif choice == "3":
print "Your result is:"
print Division(numberA, numberB)
else:
print "Please choose a valid option."
对代码重新排序,以便在使用函数之前对其进行定义:
Traceback (most recent call last):
File "C:\Users\Sergio.Tapia\Documents\NetBeansProjects\Tutorials\src\tutorials.py", line 23, in <module>
print Addition(numberA, numberB)
NameError: name 'Addition' is not defined
或者,您可以使用main()函数将其置于一切之上:
def Addition(a, b):
return a + b
def Subtraction(a, b):
return a - b
def Multiplication(a, b):
return a * b
def Division(a, b):
return a / b
keepProgramRunning = True
while keepProgramRunning:
print "Welcome to the Calculator!"
print "Please choose what you'd like to do:"
print "0: Addition"
print "1: Subtraction"
print "2: Multiplication"
print "3: Division"
#Capture the menu choice.
choice = raw_input()
#Capture the numbers you want to work with.
numberA = raw_input("Enter your first number: ")
numberB = raw_input("Enter your second number: ")
if choice == "0":
print "Your result is:"
print Addition(numberA, numberB)
elif choice == "1":
print "Your result is:"
print Subtraction(numberA, numberB)
elif choice == "2":
print "Your result is:"
print Multiplication(numberA, numberB)
elif choice == "3":
print "Your result is:"
print Division(numberA, numberB)
else:
print "Please choose a valid option."
要使其工作,您需要在执行需要时提供一些加法定义。一种方法是将添加定义放在文件的更高位置 另一种方法是直接使用操作符:
def main():
keepProgramRunning = True
while keepProgramRunning:
print "Welcome to the Calculator!"
print "Please choose what you'd like to do:"
print "0: Addition"
print "1: Subtraction"
print "2: Multiplication"
print "3: Division"
#Capture the menu choice.
choice = raw_input()
#Capture the numbers you want to work with.
numberA = raw_input("Enter your first number: ")
numberB = raw_input("Enter your second number: ")
if choice == "0":
print "Your result is:"
print Addition(numberA, numberB)
elif choice == "1":
print "Your result is:"
print Subtraction(numberA, numberB)
elif choice == "2":
print "Your result is:"
print Multiplication(numberA, numberB)
elif choice == "3":
print "Your result is:"
print Division(numberA, numberB)
else:
print "Please choose a valid option."
def Addition(a, b):
return a + b
def Subtraction(a, b):
return a - b
def Multiplication(a, b):
return a * b
def Division(a, b):
return a / b
if __name__ == '__main__':
main()
第三种方法是使用操作员模块中的功能:
# was: print Addition(numberA, numberB)
print numberA + numberB
要使其工作,您需要在执行需要时提供一些加法定义。一种方法是将添加定义放在文件的更高位置 另一种方法是直接使用操作符:
def main():
keepProgramRunning = True
while keepProgramRunning:
print "Welcome to the Calculator!"
print "Please choose what you'd like to do:"
print "0: Addition"
print "1: Subtraction"
print "2: Multiplication"
print "3: Division"
#Capture the menu choice.
choice = raw_input()
#Capture the numbers you want to work with.
numberA = raw_input("Enter your first number: ")
numberB = raw_input("Enter your second number: ")
if choice == "0":
print "Your result is:"
print Addition(numberA, numberB)
elif choice == "1":
print "Your result is:"
print Subtraction(numberA, numberB)
elif choice == "2":
print "Your result is:"
print Multiplication(numberA, numberB)
elif choice == "3":
print "Your result is:"
print Division(numberA, numberB)
else:
print "Please choose a valid option."
def Addition(a, b):
return a + b
def Subtraction(a, b):
return a - b
def Multiplication(a, b):
return a * b
def Division(a, b):
return a / b
if __name__ == '__main__':
main()
第三种方法是使用操作员模块中的功能:
# was: print Addition(numberA, numberB)
print numberA + numberB
您需要在调用函数之前定义它们。函数定义是Python中的可执行语句,由于您的无限循环,它们没有机会被定义 您应该将这四个定义移到循环上方,此错误将消失
更具风格的一点是,您应该以可导入的方式而不仅仅是可运行的方式构建模块。Python程序使用的
\uuuuu name\uuuu==“\uuuuu main\uuuu”
技巧是一种规范的方法,该语言的创始人对如何正确构造它提供了一些见解。在调用函数之前,需要定义函数。函数定义是Python中的可执行语句,由于您的无限循环,它们没有机会被定义
您应该将这四个定义移到循环上方,此错误将消失
更具风格的一点是,您应该以可导入的方式而不仅仅是可运行的方式构建模块。Python程序使用的
\uuuuu name\uuuu==“\uuuuu main\uuuuu”
技巧是一种规范的方法,由语言的创始人提供了一些关于如何正确构造它的见解。我一直忘了Python是解释的,而不是编译的!谢谢你的帮助。:)@Sergio Tapia:实际上Python是编译成字节码的(类似于Java/C),所有函数在程序启动之前都已经编译好了,但是编译的语义是后期绑定的(与Java/C不同),在执行def语句时,函数对象只分配给可调用的名称(在Java/C#中,函数调用是在编译时解析的)。@Sergio:甚至是编译语言(至少是C语言)如果在声明函数之前使用函数,我会抱怨。C#没有这个问题,如果我愿意,我可以在类的底部声明它,并从类的顶部调用它。我认为Java也可以这样做。@Sergio Tapia:是的,对于python类(或C/C++类)是这样的同样,因为在执行类中的任何方法时,类已经完全定义好了。简言之,如果你不想考虑函数声明/定义顺序,就把它放在一个类中。我总是忘记python是解释的,而不是编译的!谢谢你的帮助。:@Sergio Tapia:实际上python是编译成字节码的(与Java/C#类似),所有函数都会在程序启动前编译,但是编译的语义是后期绑定的(与Java/C#不同),并且函数对象仅在执行def语句时分配给可调用的名称(在Java/C#中,函数调用在编译时解析)@Sergio:如果在声明函数之前使用函数,即使是编译语言(至少是C语言)也会抱怨。C#没有这个问题,如果我愿意,我可以在类的底部声明它,并从类的顶部调用它。我认为Java也可以这样做。@Sergio Tapia:是的,python类(或C/C++类)也是如此此外,由于在执行类中的任何方法时,该类将已经完全定义。简而言之,如果您不想考虑函数声明/定义顺序,请将其放入一个类中。更新为在何处定义函数不太迟钝更新为在何处定义函数不太迟钝