我运行文件时没有定义Num1?虽然它被定义了?

时间:2015-12-21 22:19:01

标签: python

Altough Num1已定义显示错误,表示不是:( 我试过这个有和没有int()但仍然产生相同的错误。 仅供上下文使用,这是一个计算器。

def main():
    Num1 = int(input("Please type First Number:"))
    calc = input("x,+,-,/")
    Num2 = int(input("Please type Second Number:"))

    if(calc == "x"):
        multiply()
def multiply():
    Num1 * Num2

3 个答案:

答案 0 :(得分:2)

Num1Num2的定义范围为main,而不是multiply。你需要传递它们。

我还应该指出你的multiply函数不会返回任何内容

答案 1 :(得分:1)

它是在另一个函数中本地定义的,你需要有一个全局变量并使用

def multiply():
    global num1

但真正的解决方案是,你应该使用乘法函数取参数,如此

def multiply(a, b):
    return a * b

你应该叫它

print multiply(num1, num2)

编辑:当然,在main()函数内调用它,没有全局变量。

答案 2 :(得分:0)

Num1已定义,但在另一个范围中。在您的情况下,它是一个函数main()。您应该将这两个变量作为参数传递或将它们设为全局。

相关:Short Description of Python Scoping Rules