如何在python中输出输入

时间:2017-07-24 23:39:51

标签: python

>>> import math

#defining first function
>>> def f(a):
        return a-math.sin(a)-math.pi/2

#defining second fuction
>>> def df(a):
        return 1-math.cos(a)

#defining third function which uses above functions
>>> def alpha(a):
        return a-f(a)/df(a)

如何编写一个代码,其中alpha(a)取a = 2的起始值,alpha(2)的解将在下次成为输入。例如:让我们假设alpha(2)变为2.39,因此下一个值将是alpha(2.39)并继续{最多50次迭代}。有人可以帮助我一点。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以让程序使用for循环进行迭代,使用变量来存储中间结果

temp = 2                # set temp to the initial value
for _ in range(50):     # a for loop that will iterate 50 times
    temp = alpha(temp)  # call alpha with the result in temp
                        # and store the result back in temp
    print(temp)         # print the result (optional)

print(temp)将打印中间结果。这不是必需的。它仅演示了在整个过程中如何更新temp变量。

答案 1 :(得分:0)

你可以将它客观化。

import math

class inout:
    def __init__(self, start):
        self.value = start
    def f(self, a):
        return a-math.sin(a)-math.pi/2
    def df(self, a):
        return 1-math.cos(a)
    def alpha(self):
        self.value = self.value-self.f(self.value)/self.df(self.value)
        return self.value

然后创建一个inout对象,每次调用其alpha方法时,它都会给出系列中的下一个值。

demo = inout(2)
print(demo.alpha())