我试图测试每个输入,然后返回数字被清除,然后做数学。例如,用户输入的是N而不是我希望输出的数字,而不是数字,而如果用户输入1,那么我希望它移动到下一个功能请求功率,然后做同样的事情,如果通过然后进入输出问题答案的最后部分。Python Recrusive Statement错误未定义
程序通过了非数字区域的错误,当它到达非常最后的功能时,它告诉我基础也没有功率被定义。
代码是用Python2和Python3编写的。所有的作品都很好。我主要使用python3。
# 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之间的差距也可以,请你从截图中删除这些行,以便我可以看到整个堆栈跟踪? –
@James_Hughes不会改变任何东西。我为你添加了一张不同的照片。第48行和第46行是出现错误的地方 – Yrroth
问题不在于递归函数本身,请参见下文。 –