Python每日一题 2025.3.29
一、题目
python
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语句判断。也可以循环来判断分析,这样感觉更简单一些。
三、源代码
python
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答案
python
# 定义利润分段及对应的提成比例
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) * rate
prev = threshold
else:
# 最后不满整区间的部分
bonus += (profit - prev) * rate
break
# 输出结果
print(f"应发放奖金总额为:{bonus:.2f} 元")
五、源代码与ai分析
输出对比了一下,结果应该一样。我用两个列表存储,deepseek用列表加元组存储。选择使用列表下标访问的话,缺少pythonic的感觉。另外这题感觉都不太行,明天找些硬核的题把。