import math
def sine_func(x):
power = 0
sine = x
add = (-1)**(power)*(x**(2*power+1))/(math.factorial((2*power+1)))
while math.fabs(add) > 1.0e-8:
sine += add
power += 1
add == (-1)**(power)*(x**2*power+1)/(math.factorial((2*power+1)))
return sine
打印(sine_func(1))
程序正在永远运行,对我在哪里犯错误的想法?
答案 0 :(得分:3)
这一行:
add_ == (-1)**(power_int)*(x**2*power_int+1))/(math.factorial((2*power_int+1)))
既不引用前一个变量("add" != "add_"
)也不指定任何值 - ==
是Python中的比较,而不是赋值。尝试:
add = (-1)**(power_int)*(x**2*power_int+1))/(math.factorial((2*power_int+1)))
答案 1 :(得分:0)
在将括号和初始化修复为sine=0
之后,您的代码对我来说运行正常(Python 3.3.3)。
import math
def sine_func(x):
power = 0
sine = 0
add = (-1)**(power)*(x**(2*power+1))/(math.factorial((2*power+1)))
while math.fabs(add) > 1.0e-8:
sine += add
power += 1
add = (-1)**(power)*(x**(2*power+1))/(math.factorial((2*power+1)))
return sine