家庭作业帮助!简单的Python任务

时间:2013-09-03 00:44:43

标签: python loops

问题:

  

对于这部分作业,您将编写一个要评估的函数   数学指数函数,例如你的Python函数会   被称为badexp(x),因为它至少不会很好地工作   对于某些x值。

     

使用badexp公式:term [i + 1] = term * x /(i + 1)

     

对于你的badexp函数,你肯定需要写一个循环,但是   因为等式(7),你不需要在a里面写一个循环   循环(“双嵌套循环”)。

     

要编写badexp,请在数学公式中加上项的总和,   从i = 0开始。你不能永远继续前进,所以请尽快停止   在总和中添加新术语不会改变总和。那会的   肯定会最终发生,因为对于大的我来说条款变得非常   小。

我可以弄清楚如何编写一个更好的exp函数,但这个是荒谬的,我无法弄清楚循环。到目前为止我所拥有的:

def badexp(x):
    i = 0
    term1 = 1.
    term2 = x
    temp = term1
    while term1 != term2:
        term1 = temp
        term2 = 1 + term1 * x / (i + 1)
        temp = term2
        i = i + 1
    print term2

但这不起作用:/

1 个答案:

答案 0 :(得分:2)

我认为没有必要跟踪两个term变量。怎么样只是

def badexp(x):
    i = 0
    acc = 0
    term = 1.
    while True:
        newacc = acc + term
        i += 1
        term = term * x / i
        if acc == newacc:
            return acc # numbers stopped changing
        acc = newacc