如何解决i * i和i ^ 2在for循环中的行为不同
我要解决的问题:编写一个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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。