为For循环指定初始值

时间:2017-08-23 22:09:13

标签: python loops

我目前正致力于编写递归算法。我用很多for循环创建了类似下面的函数。

def create_m_(y, m, theta, mc, theta_mc):
    for i in range (len(data[0])-1):   
        m = create_m(y)[i]
        theta = theta_m[i]
        mc = create_mc(y)[i-1]
        create_theta_mc[i-1] 
        m_ =  (m * theta_mc + mc * theta + m * mc)
        return m_

唯一的事情是:不会使用函数中的公式计算将启动循环的mc和theta_mc的初始值(这些初始值是特定情况)。如何设置循环以指定mc和theta_mc的第一个值?

编辑: 我可以这样做吗?

def create_m_(y, m, theta, mc, theta_mc):
    for i in range (len(data[0])-1): 
        if i == 1:
            m = m_2
            theta = theta_m_2
        else:        
            m = create_m(y)[i]
            theta = theta_m[i]
            mc = create_mc(y)[i-1]
            create_theta_mc[i-1] 
            m_ =  (m * theta_mc + mc * theta + m * mc)
        return m_

1 个答案:

答案 0 :(得分:1)

只需更改功能

即可
def create_m_(y, m, theta, mc, theta_mc)

为:

def create_m_(y, m, theta, mc=initial_value, theta_mc=initial_value)

当您第一次调用此函数而未指定mctheta-mc的值时,它们将默认为初始值。