[英]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()
三種不同的東西混在一起:
2**.5
,N
次方: 2**N
,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.