我正在处理作业并遇到此错误。 NameError:name' recPower'未定义
写一个名为pow(base,power)的递归函数,它接收两个数字。第一个数字是基数,第二个数字是幂。该功能将返回提升功率的数字。因此,如果数字为2且功率为4,则函数将返回16.(75分)。
写一个要求数字和功率的main()函数。然后调用在步骤1中创建的递归函数(15分)。 请勿使用本书第432页的算法:
def:recPower(a,n):
if n == 0:
return 1
else:
factor = recPower (a, n//2)
if n%2 == 0:
return factor * factor
else:
return factor * factor * a
我目前的代码如下
def main():
a=input("enter base :")
n=input("enter power :")
print ("Total = ",recPower(a,n))
main()
def recPower (a,n):
if n == 0:
return 1
else:
return a*recPower(a,n-1)
` 我运行它时得到的错误是:
追踪(最近一次通话): 文件" .py",第7行,in 主要() 文件" .py",第5行,在main中 打印("总计=",recPower(a,n)) NameError:name' recPower'未定义
答案 0 :(得分:1)
定义您的'运行'功能在' recPower'。
之后如前所述,您需要使用int()或float()将从input()返回的字符串转换为整数或浮点数。当您尝试像分区这样的操作时,您将获得TypeError异常。
答案 1 :(得分:1)
功能存储在标识符中。你必须先定义它。试试这个:
def recPower(a, n):
if n == 0:
return 1
else:
return a * recPower(a, n - 1)
def main():
a = int(input("enter base :"))
n = int(input("enter power :"))
print ("Total = ", recPower(a, n))
main()
答案 2 :(得分:0)
函数必须在使用之前定义。
试试这段代码
def recPower(a, n):
# or just a, n = int(a), int(n) is fine
if isinstance(a, str):
a = int(a)
if isinstance(n, str):
n = int(n)
if n == 0:
return 1
else:
return a * recPower(a, n - 1)
def main():
a = input("enter base :")
n = input("enter power :")
print ("Total = ", recPower(a, n))
main()
答案 3 :(得分:0)
在主代码上面编写你的方法,因为如果你在主代码下编写方法是未完成的