功率系列扩展正弦功能

时间:2014-01-28 14:44:04

标签: python

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))

程序正在永远运行,对我在哪里犯错误的想法?

2 个答案:

答案 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