Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在for循环中,i*i和i^2的行为方式不同_Python_For Loop_Math_Sum_Python 3.7 - Fatal编程技术网

Python 在for循环中,i*i和i^2的行为方式不同

Python 在for循环中,i*i和i^2的行为方式不同,python,for-loop,math,sum,python-3.7,Python,For Loop,Math,Sum,Python 3.7,我试图解决的问题是:编写一个Python函数,它接受一个正整数n,并返回所有小于n的正整数的平方和 在编写问题代码时,我观察到一些非常奇怪的情况。(蟒蛇3.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

我试图解决的问题是:编写一个Python函数,它接受一个正整数n,并返回所有小于n的正整数的平方和

在编写问题代码时,我观察到一些非常奇怪的情况。(蟒蛇3.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。

这是因为
^
是按位异或而不是幂。 您可以使用:

i*i
正如您已经做过的,或者:

i**2

在python中
^
表示
异或(按位)


使用
**
代替
^

^
不是求幂运算符。这是因为
^
是异或运算符,而不是指数运算符。