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)
这里,base
和power
都没有定义。你的意思是存储这些函数调用的结果然后传递它们:
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),".")
目前,您没有存储这两个函数的值。
我正在尝试测试每个输入,然后 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)
这里,base
和power
都没有定义。你的意思是存储这些函数调用的结果然后传递它们:
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),".")
目前,您没有存储这两个函数的值。