Python-100 練習題 02

spearhead_cai發表於2019-01-28

練習題2 的網址:

www.runoob.com/python/pyth…


Example-2 企業發放獎金

題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?

思路

這道題目可以根據每個獎金髮放區間來分界,先分別定義兩個陣列,一個陣列是存放每個區間獎金的提成比例,記為rat;另一個陣列是記錄每個發放區間的上邊界,表示當超過該邊界時候,直接利用上邊界乘以該區間的提成比例,例如對於在 10 萬元以下的這個區間,就是上邊界為 10 萬,然後超過後,該區間發放獎金就是100000*0.1

然後我們先考慮利潤超過 100 萬的情況,依次降低利潤,對應每種情況。

程式碼實現

def pay_award():
    profit = int(input('淨利潤:'))
    arr = [1000000, 600000, 400000, 200000, 100000, 0]
    rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
    r = 0
    for idx in range(0, 6):
        if profit > arr[idx]:
            # 當前區間的利潤
            r += (profit - arr[idx]) * rat[idx]
            print('current award=', (profit - arr[idx]) * rat[idx])
            # 重置下一個區間起始獎金數量
            profit = arr[idx]
    return r
複製程式碼

簡單的測試例子:

# 利潤是 11000
淨利潤:11000
current award= 1100.0
award= 1100.0

# 利潤是 1100000 (110萬)
淨利潤:1100000
current award= 1000.0
current award= 6000.0
current award= 6000.0
current award= 10000.0
current award= 7500.0
current award= 10000.0
award= 40500.0
複製程式碼

原始碼在:

github.com/ccc013/Code…

或者點選原文,也可以檢視原始碼。


歡迎關注我的微信公眾號--機器學習與計算機視覺,或者掃描下方的二維碼,大家一起交流,學習和進步!

Python-100 練習題 02

往期精彩推薦

Python-100 練習系列
學習筆記
數學學習筆記
Github專案 & 資源教程推薦