我已经写了一个作为计算器的函数。它适用于以下变量。
然而,我想将其扩展到处理15个不同的“级别”值以及15个不同的“销售”和“成本”值。该函数将根据以下每个级别应用不同的销售和成本计算方法。(由于每个计算都适用于特定级别,因此这些计算可能会在函数之外定义。)
我可以为每个15个级别编写多个if/elif语句,但这似乎不是很Pythonic。是否有一种方法可以通过编程方式扩展这样的函数来处理更多的销售、级别和成本?
出于清晰起见,输出结果与下面相同(当然取决于输入的值),但该函数应能够处理更多的值。
然而,我想将其扩展到处理15个不同的“级别”值以及15个不同的“销售”和“成本”值。该函数将根据以下每个级别应用不同的销售和成本计算方法。(由于每个计算都适用于特定级别,因此这些计算可能会在函数之外定义。)
我可以为每个15个级别编写多个if/elif语句,但这似乎不是很Pythonic。是否有一种方法可以通过编程方式扩展这样的函数来处理更多的销售、级别和成本?
出于清晰起见,输出结果与下面相同(当然取决于输入的值),但该函数应能够处理更多的值。
levels_list = [4, 5] # ultimately 15 values in this list
sale4 = 18280 # ultimately 15 of these values
sale5 = 19180
sale6 = 22170
cost1 = 224 # and 15 of these values
cost2 = 335
cost3 = 456
def sales(level, foo, bar):
for level in levels_list:
if level == 4:
x = cost1 + sale4 * foo
y = cost2 + sale4 * bar
z = x + y
elif level == 5:
x = cost2 + sale5 * foo
y = cost3 + sale5 * bar
z = x + y
return pd.DataFrame({'Total Cost':[z], 'x_Cost':[x], 'y_Cost':[y]})
sales(5, 10, 10)
Total Cost x_Cost y_Cost
0 384391 192135 192256
cost1 + sale(1+3) * foo
。然后你可以将sale和cost的值放入一个数组中,并按位置读取数据。 - Xiongbing Jin