Python每日一題 2025.3.29
- 一、題目
- 二、分析
- 三、源代碼
- 四、deepseek答案
- 五、源代碼與ai分析
一、題目
question=["""企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?"""
]
二、分析
??總共六個部分,可以直接多個if語句判斷。也可以循環來判斷分析,這樣感覺更簡單一些。
三、源代碼
i=int(input())
money=[1000000,600000,400000,200000,100000,0]
r=[0.01,0.015,0.03,0.05,0.075,0.1]
result=0
for j in range(0,6):if i>money[j]:result+=(i-money[j])*r[j]i=money[j]print (result)
四、deepseek答案
# 定義利潤分段及對應的提成比例
thresholds = [(100000, 0.1), # 10萬以內部分10%(200000, 0.075), # 10-20萬部分7.5%(400000, 0.05), # 20-40萬部分5%(600000, 0.03), # 40-60萬部分3%(1000000, 0.015), # 60-100萬部分1.5%(float('inf'), 0.01) # 超過100萬部分1%
]# 獲取輸入利潤
profit = int(input("請輸入當月利潤(元):"))
bonus = 0 # 初始化獎金總額
prev = 0 # 記錄前一個區間的上限# 分段計算獎金
for threshold, rate in thresholds:if profit > threshold:# 當前區間全額計算bonus += (threshold - prev) * rateprev = thresholdelse:# 最后不滿整區間的部分bonus += (profit - prev) * ratebreak# 輸出結果
print(f"應發放獎金總額為:{bonus:.2f} 元")
五、源代碼與ai分析
??輸出對比了一下,結果應該一樣。我用兩個列表存儲,deepseek用列表加元組存儲。選擇使用列表下標訪問的話,缺少pythonic的感覺。另外這題感覺都不太行,明天找些硬核的題把。