问题描述
我要解决的问题:编写一个Python函数,该函数接受一个正整数n,并返回所有小于n的正整数的平方和。
在为问题编码时,我观察到一些非常奇怪的东西。 (python3.7)
迭代1:我在for循环中使用了i ^ 2作为要添加的术语。
n = int(input('Enter the value of integer upto which sum needs to be computed: '))
sum = 0
for i in range(1,n):
sum += i^2
迭代2:我在for循环内使用i * i作为要添加的术语
n = int(input('Enter the value of integer upto which sum needs to be computed: '))
sum = 0
for i in range(1,n):
sum += i*i
尽管在数学上是相同的,但是两次迭代都产生不同的答案(总和是输出),我不明白为什么。请在这里帮助我,以便我可以更好地了解Python。
解决方法
在python ^
中表示exclusive-or (bitwise)
使用**
代替^
这是因为^
是按位XOR而不是幂。
您可以使用:
i*i
您已经完成的操作,或者:
i**2