如何在另一个公式中使用一个公式的结果?

How to use the result of one formula in another formula?

如何将一个函数的结果用于另一个函数。

list = [1, 1, 1, 1]
def margin():
    a = 0
    b = 1.2
    c = 1
    for i in list:
        if i == 1:
            x = a + b - c
            return x    # x = 0.2


def calc():
    for i in list:
        formula = 2 + margin()
        print(formula)

calc()
# 2.2 2.2 2.2 2.2 

我希望程序能够计算:

'''
          2  + 0.2 = 2.2
         2.2 + 0.2 = 2.4
         2.4 + 0.2 = 2.6
         2.6 + 0.2 = 2.8
giving result 2.2 2.4 2.6 2.8
'''

解决方案

def margin(element, a=0, b=1.2, c=1, default_margin=0):
    if element == 1:
        return a + b - c
    else:
        return default_margin


def calc(elements, start_value=2):
    formula = start_value
    for i in elements:
        formula += margin(i)
        print("{:.1f}".format(formula))


elements = [1, 1, 1, 1]
calc(elements)  # 2.2 2.4 2.6 2.8

编程良好实践

  1. 不要使用内置类型作为变量名(list)
  2. 使用函数参数而不是全局变量
  3. 在函数内部使用默认值而不是硬编码数字以获得更通用的方法
  4. 不要创建不必要的变量(x inside margin 函数)
  5. 确保函数始终returns相同类型的变量或至少记录并处理特殊情况
  6. 在相同变量上迭代两次时要小心(在 calcmargin 函数中,您正在迭代列表,因此列表中的第一个元素是唯一被使用的元素)。