PYTHON中的幂(a,n)

时间:2016-11-12 19:48:41

标签: python-3.x

Python中的POwer。如何使用funсtion编写代码来显示^ n? 为什么这段代码不起作用?

a = int(input())
n = int(input())

def power(a, n):
     for i in range (n):
        a=1
        a *= n


print(power (a, n)) 

2 个答案:

答案 0 :(得分:2)

错误很少:

  1. 更改a会丢失您的参数,请使用result(或其他内容)。
  2. 将设置result = 1 设置在您的循环外一次。
  3. 乘以a而不是n
  4. 使用return从函数
  5. 返回值
    def power(a, n):
        result = 1 # 1 + 2
        for _ in range (n):
            result *= a # 3
        return result # 4
    

    样式说明:

    1. 设置/变异参数被认为是不好的做法(除非明确需要),即使它在这里是不可变的。
    2. 如果你不打算使用循环变量,你可以通过使用传统的_来告诉读者(_是一个合法的变量名称,但它是当需要变量时使用它。
    3. 提示:您可以简单地使用a**n

答案 1 :(得分:0)

它不起作用,因为你的函数没有返回结束值。将return a添加到函数末尾。

ALSO:

这不是计算a n幂的def power(a,n): pow_a = a if n is 0: return 1 for _ in range(n-1): # Substracting 1 from the input variable n pow_a *= a # because n==2 means a*a already. return pow_a 的方式。 一个合适的解决方案:

def power_recursive(a,n):
    if n is 0:
        return 1
    elif n is 1:
        return a
    else:
        a *= power_recursive(a,n-1)
    return a

如果你想变得很酷,那么递归就是这样的:

typealias MyCategory = Category