问题描述
我正在做一个简单的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的平方根:
2**.5
- 2的第
N
次幂,2**N
,
函数 -
poweroftwo
(如 Tom Karzes 所述,函数poweroftwo
计算N * 2**2
而不是2**N
) 。
N * 4
中的我假设实际目标是#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