编写迭代函数

时间:2019-05-30 14:12:51

标签: python loops

我正在写一个解决线性空气方程组的程序。我需要运行一些迭代才能看到我的目标价值有所提高。我首先在文件底部写了打印功能来编写程序。所以我基本上自己做了迭代。我现在想将迭代次数写为该函数的估算参数。

我尝试使用while和for循环,但这似乎对我不起作用。所以现在我尝试了这种格式,如下所示。我没有将整个程序放在这里,而只是将其工作的基本结构放在这里。

def function(A,x,c,iter):
    if iter == 0:
        return x
    else:
        A = 1/2 * A
        c = 1/2 * c
        x1 = 1/2 * x

        iter = iter - 1

        function(A,x1,c,iter)

当iter = 0时,它给我x的立即值。但是,当iter> 0时,我将返回“ None”……任何人都可以解释为什么这样做并帮助我修复程序吗?谢谢!

3 个答案:

答案 0 :(得分:2)

def function(A,x,c,iter):
    if iter == 0:
        return x
    else:
        A = 1/2 * A
        c = 1/2 * c
        x1 = 1/2 * x

        iter = iter - 1

        return function(A,x1,c,iter)

您只是没有返回else的值,而Python函数在没有return语句时返回None。

答案 1 :(得分:0)

在最后一行添加一个返回值,以便在执行以下功能后返回该值:return function(A,x1,c,iter)

答案 2 :(得分:0)

作为for循环,它看起来像:

def function(A,x,c,iterN):
    for _ in range(iterN)
        A = 1/2 * A
        c = 1/2 * c
        x = 1/2 * x
    return x

请注意,由于变量是内置的python函数,因此请勿使用iter进行变量命名。