Python 如何使用结果计算下一个结果,然后再计算下一个结果?

Python 如何使用结果计算下一个结果,然后再计算下一个结果?,python,function,loops,math,formula,Python,Function,Loops,Math,Formula,我试图用公式的结果来计算下一个结果,然后再计算下一个结果,依此类推 def waiting(element, start_waiting_time=0, service_time=1.2, interarrival=1, default=0): if element == 1: return max((start_waiting_time + service_time - interarrival, 0)) elif element == 0:

我试图用公式的结果来计算下一个结果,然后再计算下一个结果,依此类推

def waiting(element, start_waiting_time=0, service_time=1.2, interarrival=1,  default=0):
    if element == 1:
        return max((start_waiting_time + service_time - interarrival, 0))
    elif element == 0:
        return default

def waiting_time(elements, start_time=0):
    next_patient_waits = start_time
    for i in elements:
        next_patient_waits += waiting(i)
        print("{:.1f}".format(next_patient_waits))

elements = [1, 1, 1]
waiting_time(elements)
此代码返回输出:

# 0.2, 0.4, 0.6
我希望它返回输出:

#0, 0.2, 0.4
我想将第一个等待时间设置为0,因为开始等待时间为零。我希望计算机能计算:

#For 1st item in elements: waiting_time = 0
#For 2nd item in elements: waiting_time = (waiting time 1st element) + service_time - interarrival = 0 + 1.2 -1 = 0.2
#For 3rd item in elements: waiting_time = (waiting time 2nd element) + service_time - interarrival = 0.2 + 1.2 -1 = 0.4

您只需在增加之前打印下一个患者等待的

def waiting_time(elements, start_time=0):
    next_patient_waits = start_time
    for i in elements:
        print("{:.1f}".format(next_patient_waits))
        next_patient_waits += waiting(i)

您只需在增加之前打印下一个患者等待的

def waiting_time(elements, start_time=0):
    next_patient_waits = start_time
    for i in elements:
        print("{:.1f}".format(next_patient_waits))
        next_patient_waits += waiting(i)

严格地说,等待时间不是(数学)公式。这不是一个大问题,但将其更改为实际公式(具有
返回值
)可能会使算法的结构化方法受益。你的
等待
就是我的意思,因为它确实有一个
返回
。严格地说
等待时间
不是一个(数学)公式。这不是一个大问题,但将其更改为实际公式(具有
返回值
)可能会使算法的结构化方法受益。您的
等待
就是我的意思,因为它确实有一个
返回