NameError: name 'recPower' is not defined
我正在做作业,遇到了这个错误。名称错误:未定义名称"recpower"
编写一个名为pow(base,power)的递归函数,它接受两个数字。第一个数字是基数,第二个数字是幂。函数将返回提升到幂的数字。因此,如果数字为2,功率为4,函数将返回16。(75分)。
编写一个请求数字和幂的main()函数。然后调用步骤1中创建的递归函数(15点)。不要使用书中432页的算法:
定义:回收功率(A,N):
1 2 3 4 5 6 7 8 | if n == 0: return 1 else: factor = recPower (a, n//2) if n%2 == 0: return factor * factor else: return factor * factor * a |
我现在的代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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行,主打印("total=",recpower(a,n))名称错误:未定义名称"recpower"
函数存储在标识符中。你必须先定义它。试试这个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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() |
在"recpower"之后定义"run"函数。
如前所述,您需要使用int()或float()将从input()返回的字符串转换为整数或float。当你尝试像除法这样的操作时,你会得到类型错误异常。
在主代码上面写方法,因为如果在主代码下面写方法是未定义的
在使用任何函数之前必须定义函数。
试试这个代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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() |