0

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

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 有 between 函数吗?

IE

if x between(0-499):
4

3 回答 3

4

elifif仅在前一个为 False时才评估;你的第三个条件永远无法达到。

反转它:

if self.units >= 999:
    unitCost = 0.060
elif self.units >= 500:
    unitCost = 0.050
else:
    unitCost = 0.049
于 2013-04-24T16:57:04.887 回答
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
于 2013-04-24T16:59:58.120 回答
1

这可以通过将其类型转换self.units为一个intif 它有一个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 
于 2013-04-24T17:10:20.667 回答