Python锻炼单位成本基于范围

时间:2013-04-24 16:54:07

标签: python django

我想根据通过的单位计算单位成本。例如,

0-499 = unit cost of 0.049   
500-999 = unit cost of 0.050 
999+ = unit cost of 0.060

这是我到目前为止所尝试的:

unitCost = 0.049
        if self.units <= 499: 
            unitCost = 0.049
        elif self.units >= 500:
            unitCost = 0.050
        elif self.units >= 999:
             unitCost = 0.060
        else:
             unitCost = 0.049

首先,如果我有1000个单位,它匹配错误的单位成本,这不起作用。其次,我不确定这是好方法。 Python有一个函数吗?

if x between(0-499):

3 个答案:

答案 0 :(得分:4)

仅当前一个elif为False时,才会评估

if;你的第三个条件永远无法达到。

反转它:

if self.units >= 999:
    unitCost = 0.060
elif self.units >= 500:
    unitCost = 0.050
else:
    unitCost = 0.049

答案 1 :(得分:4)

问题是你的if语句。您需要执行units >= 500 and units <= 999之类的操作,它基本上会检查值是否介于500和999之间。

unitCost = 0.049

if units <= 499:
    unitCost = 0.049
elif units >= 500 and units <= 999:
    unitCost = 0.050
elif units > 999:
     unitCost = 0.060

print unitCost

答案 2 :(得分:1)

这可以通过将self.units强制转换为int(如果它具有float值并执行以下代码段来实现。

if int(self.units) in range(0, 500):
    unitCost = 0.049
elif int(self.units) in range(500, 1000):
    unitCost = 0.050
else:
    unitCost = 0.060