Python 递归语句错误未定义

Python Recrusive Statement Error not Defined

我正在尝试测试每个输入,然后 return 数字已清除,然后进行数学运算。例如,如果用户输入 N 而不是数字,我希望它输出它不是数字,而如果用户输入 1,那么我希望它移动到下一个函数,要求提供电源,然后做同样的事情,如果通过然后转到输出问题答案的最后一部分。

程序传递了非数字区域的两个错误,但是当它到达最后一个函数时,它告诉我基数和幂都没有定义。

代码写在一些 Python2 和一些 Python3 中。不过一切正常。我主要使用 python3。

[测试Picture/Error Msg][1]

    # Below we are creating the recursive statement to do the math for us. We are calling Base and Power
    # from the main function where the user Inputs the numbers.
    def pow(base, power):
        if power == 0:
            return 1
        if power == 1:
            return base
        else :
            return base * pow(base, power - 1)
    def determineBase():
        while True:
            try:
                base = int(input ('Please Enter A Base: '))
            except ValueError:
                print("Please use whole numbers only. Not text nor decimals.")
                continue
            else:
                return base

    def determinePower():

        while True:
            try:
                power = int(input ('Please Enter A Power: '))
            except ValueError:
                print("Please use whole numbers only. Not text nor decimals.")
                continue
            else:
                return power

    def main():
        determineBase()
        determinePower()
        pow(base,power)
        print("The answer to",base,"to the power of", power,"is", pow(base,power),".")
    main()
def main():
    determineBase()
    determinePower()
    pow(base,power)

这里,basepower都没有定义。你的意思是存储这些函数调用的结果然后传递它们:

def main():
    base = determineBase()
    power = determinePower()
    pow(base, power)

问题不在递归函数中,而是在你的主函数中。

问题是由于您将 base 作为参数传递给 pow() 函数而没有首先定义变量基数(随后 [=13 同样如此) =]).

换句话说,您需要以下内容:

def main():
    base = determineBase()
    power = determinePower()
    pow(base,power) #this line could probably be removed
    print("The answer to",base,"to the power of", power,"is", pow(base,power),".")

目前,您没有存储这两个函数的值。