假设我们遇到了
这样一个东西,我们算出了结果,并且需要用python验算。
通过抽象,我们需要计算
用普通的for语句比较麻烦,正巧python有一个叫做修饰器的东西可以简化运算,我们每次只需要把sigma内部的公式输入即可。
def series_sum(start): def _sum(func): def wrapper(x): ret = 0 i = start while True: if (i>10000): break t = func(x,i) if (i>100 and t==0): break ret += t i += 1 return ret return wrapper return _sum if __name__ == '__main__': @series_sum(1) def func_a(x,n=None): return (3*n+5)/x**n @series_sum(0) def func_b(x,n=None): return x**n; print(func_a(3)) print(func_b(0.5))
series_sum为一个修饰器,只用输入一次,之后我们只需要将我们的f(x,n)用series_sum函数修饰就好了,超级优美!