Python每日一题(9)

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的感觉。另外这题感觉都不太行,明天找些硬核的题把。

相关推荐
长潇若雪2 分钟前
《STL 六大组件之容器篇:简单了解 list》
开发语言·c++·经验分享·list·类和对象
西元.22 分钟前
线程等待与唤醒的几种方法与注意事项
java·开发语言
xcLeigh25 分钟前
计算机视觉入门:从像素到理解的旅程
人工智能·python·opencv·计算机视觉
独好紫罗兰30 分钟前
洛谷题单2-P5717 【深基3.习8】三角形分类-python-流程图重构
开发语言·python·算法
落榜程序员31 分钟前
Java基础-25-继承-方法重写-子类构造器的特点-构造器this的调用
java·开发语言
滴答滴答嗒嗒滴37 分钟前
Python小练习系列 Vol.8:组合总和(回溯 + 剪枝 + 去重)
python·算法·剪枝
forestsea38 分钟前
Java 应用程序CPU 100%问题排查优化实战
java·开发语言
啊阿狸不会拉杆38 分钟前
第十八章:Python实战专题:北京市水资源数据可视化与图书馆书籍管理应用开发
开发语言·python·信息可视化·用户界面
阿ฅ( ̳• ε • ̳)ฅ42 分钟前
C#窗体应用程序连接数据库
开发语言·数据库·c#
学习同学44 分钟前
C++进阶知识复习 1~15
java·开发语言·c++