Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名称为';在我的Python应用程序中找不到_Python - Fatal编程技术网

名称为';在我的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++类)也是如此此外,由于在执行类中的任何方法时,该类将已经完全定义。简而言之,如果您不想考虑函数声明/定义顺序,请将其放入一个类中。更新为在何处定义函数不太迟钝更新为在何处定义函数不太迟钝