簡體   English   中英

Python計算2的平方根

[英]Python calculating square root of 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在函數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 ),這不是計算2 n的可行解決方案(盡管標題中提到了平方根,但您似乎正在這樣做)。

下面的代碼會做非負整數所需的任務,假設你不希望只使用內置的Python **電運營商(即使你目前的代碼使用它增加四個):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM