python a+=b 和 a=a+b的区别
士弘毅 2017-07-21 04:15:00 用python 写了段求π的函数
n = input("数\n")
# 求π的近似值
pai = 1
pa = 1
for i in range(1, n):
pai -= 1.0 / (4 * i - 1) + 1.0 / (4 * i + 1)
pa = pa - 1.0 / (4 * i - 1) + 1.0 / (4 * i + 1)
print 'pai=', 4 * pai,
print' pa = ', 4 * pa
随便输一个正整数,结果如下
pai= -6.51363180581 pa = 3.1466177475
以为可能和循环有关,写了下面:
s=a=1
for i in range(10):
s+=i
a=a+i
print s,a
但结果一样:
46 46
那可能和后面部分相关:
s=a=1
for i in range(2):
s+=i +6
a=a+i +6
print s,a
结果:14 14
额,可能和左元表达式有关。再试
pai = pa =1
for i in range(1, 3):
pai -= 1.0 / (4 * i - 1) +3
pa = pa - 1.0 / (4 * i - 1) +3
print 'pai=', 4 * pai,
print' pa = ', 4 * pa
结果:pai= -21.9047619048 pa = 26.0952380952
但是
pai = pa =1
for i in range(1, 3):
pai -= 1.0 / (4 * i - 1)
pa = pa - 1.0 / (4 * i - 1)
print 'pai=', 4 * pai,
print' pa = ', 4 * pa
结果:pai= 2.09523809524 pa = 2.09523809524
OK,就这样懵逼了。哪位大神可解疑惑?