繁体   English   中英

变量不会在python中的for循环中更改

[英]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)))

刚刚尝试过:

  1. x = math.pi/3并得到0.866025
  2. x = math.pi/2并得到1.000000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM