[英]variable not changing in for loop in python
我正在尝试在python中计算正弦序列。
这是我正在使用的代码:
import math
x=int(raw_input('X = '))
i=1
r=0
s=1
t=1
for i in range(1,13,2):
fact=1
for j in range(1,i+1):
fact = fact * j
j=j+1
t = (s)*(math.pow(x,i)/fact)
r = r + t
s=s*(-1)
i+=2
print('sin('+str(x)+') = '+str(r))
它会将t的最后计算值存储在r中,而不更新(r)。 请告诉我为什么会这样发生。
也许您正在尝试执行以下操作(查看循环中的更正):
import math
x=float(raw_input('X = '))
#x = math.pi/2
xx = x
i=1
r=0
s=1
t=1
fact=1
for i in range(1,13,2):
t = s*xx/fact
r = r + t
s = -s
fact = fact * (i+1) * (i+2)
xx *= x*x
print('sin(%f) ~ %f' % (x,r))
print('sin(%f) = %f' % (x,math.sin(x)))
刚刚尝试过:
x = math.pi/3
并得到0.866025
x = math.pi/2
并得到1.000000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.