我有包含在以下格式的数据文件discount.txt将其存储在一个列表:解析文本文件和
Less than $100 --> 0%
From $100 up to less than $500 --> 10%
From $500 up to less than $1,000 --> $40 PLUS 20%
From $1,000 up to less than $2,000 --> $140 PLUS 30%
$2,000 and above --> $440 PLUS 40%
这意味着在销售金额
Less than $100 0%
From $100 up to less than $500 10% for each dollar over $100
From $500 up to less than $1,000 $40 PLUS 20% of the total sale amount over $500
From $1,000 up to less than $2,000 $140 PLUS 30% of the total sale amount over $1,000
$2,000 and above $440 PLUS 40% of the total sale amount over $2,000
也就是说折扣,如果总销售额为100美元,那么折扣将为0美元。但是,如果总销售额为$ 101,则折扣将为$ 0.10。如果总销售额为500美元,则折扣将为40美元,但如果总销售额为501美元,则折扣将为40.20美元。
为了解决这个问题,我认为有4个清单:1个用于存储销售额下限的清单,1个用于上限的清单,1个用于存放与范围相对应的固定增量的清单,以及一个用于存放额外打折的清单。如果没有固定增量,则将其假设为零。
那么对于给定的销售额,如果它位于第i范围内,那么只是这样做:
fixedIncrement[i] + (saleAmount-lowerLimit[i])*additionDiscount[i]
但是问题现在面临被解析给定的文本文件。是否有人可以帮助解析它,它
这里存放在列出蟒蛇在给定的文件列表会是这样的:
lowerLimit[] = [1,100,500,1000,2000]
upperLimit[] = [100,500,1000,2000,MAX]
fixedIncrement[] = [0,0,40,140,440]
additionDiscount[] = [0,0.1,0.2,0.3,0.4]
@PrerakSola我解释我的做法。我想知道除了我在想什么之外是否还有更好的替代方案。我的代码有点混乱。我采取了每条线并解析它。我希望有一些优雅的方式来做到这一点 – ms8
你解释了你的计算方法。但是你提到的问题是解析文本文件。那么到目前为止,您尝试解析该文本文件的是什么?那么错误/不需要的行为是什么? –
@python_slayer最有可能的方法将是相同的:你取一行,正则表达式的值并将它们存储在列表列表中。然后,从初始列表中的每个列表的i ++元素创建列表的新列表。 – konart