Python计算2的平方根

问题描述

我正在做一个简单的python任务,计算输入数字2的平方根。 例如输入数字= 3-> 2x2x2
但是我的代码无法正常工作,我找不到原因。 任何人都可以纠正它们或告诉我怎么了吗?

def poweroftwo(N):
    result = 0
    for n in range(1,N + 1):
        result = result + 2**2
    return result




    
def main():
    num=int(input("Give a number: "))
    var1 = poweroftwo(num)
    print("The result is",var1)



    
if __name__ == "__main__":
    main()

解决方法

三件事混合在一起:

  1. 2的平方根:2**.5
  2. 2的第N次幂,2**N
  3. 函数N * 4中的
  4. poweroftwo(如 Tom Karzes 所述,函数poweroftwo计算N * 2**2而不是2**N) 。

我假设实际目标是#2,所以正确的代码是:

def main():
    num = int(input("Give a number: "))
    print("The result is",2**num)

    
if __name__ == "__main__":
    main()
,

您将不断添加四个(2**2),这对于解决2n而言不是可行的解决方案(尽管标题中提到了平方根,但您似乎正在这样做)。

假设您不想只使用内置的Python **幂运算符(即使您当前的代码是),以下代码将对非负整数完成所需的任务em>使用它添加四个):

def poweroftwo(n):
    if type(n) != int: return None
    if n < 0: return None
    result = 1
    while n > 0:
        result *= 2
        n -= 1
    return result

for x in range(9):
    print(x,poweroftwo(x))

输出为:

0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256