我有包含在以下格式的數據文件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