📖 开篇语
还记得你第一次审核报销单时的场景吗?
“发票金额超过5000元?需要部门经理签字。”
“差旅费超标了吗?超标部分自理。”
“发票日期是今年的吗?跨年发票不能报。”
这些判断流程,你已经烂熟于心。今天,我们要让Python学会这种“判断思维”:遇到不同情况,做出不同决策。这就是编程中的“条件判断”,也是Python从“计算器”升级为“智能助手”的关键一步。
🎯 今日学习目标
- 学会用if语句做决策
- 掌握6种比较运算符
- 制作一个智能消费提醒器
🧠 条件判断:给Python装上“财务大脑”
从报销审批理解if语句
先来看一个财务人最熟悉的场景:
人工审批流程:
“如果发票金额 > 5000元,就找经理签字;否则自己签字就行。”
Python版审批流程:
1 2 3 4 5 6
| 发票金额 = 8000
if 发票金额 > 5000: print("需要经理签字") else: print("自己签字即可")
|
Python的 if 语句就是把你脑子里的“如果…否则…”翻译成代码!
if语句的三种形态
简单判断(单一条件)
1 2 3 4 5 6
| 报销日期 = "2024-01-15" 当前日期 = "2024-01-25"
if 当前日期 > 报销日期: print("提醒:该报销单已超期,请尽快处理!")
|
双向判断(非此即彼)
1 2 3 4 5 6 7 8
| 发票年份 = 2024 当前年份 = 2024
if 发票年份 == 当前年份: print("✅ 发票有效,可以报销") else: print("❌ 发票过期,不能报销")
|
多向判断(多种情况)
1 2 3 4 5 6 7 8 9 10 11 12 13
| 职级 = "经理"
if 职级 == "员工": 住宿标准 = 300 elif 职级 == "主管": 住宿标准 = 500 elif 职级 == "经理": 住宿标准 = 800 else: 住宿标准 = 1200
print(f"您的住宿标准是:{住宿标准}元/晚")
|
⚖️ 比较运算符:Python的“财务标尺”
6个基本比较运算符
| 运算符 | 含义 | Excel等价 | 财务场景举例 |
|---|
> | 大于 | > | 发票金额 > 5000 |
< | 小于 | < | 预算余额 < 1000 |
== | 等于 | = | 发票状态 == “已审核” |
>= | 大于等于 | >= | 工作年限 >= 3年 |
<= | 小于等于 | <= | 报销日期 <= 本月月底 |
!= | 不等于 | <> | 发票类型 != “个人发票” |
实际财务场景演练
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 住宿费 = 850 标准限额 = 800
if 住宿费 > 标准限额: 超标金额 = 住宿费 - 标准限额 print(f"住宿费超标{超标金额}元,超标部分需要自理") else: print("住宿费在标准范围内,可以全额报销")
发票类型 = "专用发票" 发票金额 = 10000 发票日期 = "2024-01-15"
if 发票类型 == "专用发票" and 发票金额 >= 10000: print("需要填写《大额发票申请表》") elif 发票类型 == "普通发票" or 发票金额 < 1000: print("简化流程处理") else: print("按正常流程审批")
预算总额 = 50000 已用预算 = 48000 本次申请 = 3000 剩余预算 = 预算总额 - 已用预算
if 剩余预算 <= 0: print("❌ 预算已用完,无法申请") elif 本次申请 > 剩余预算: print(f"⚠️ 申请金额超过剩余预算,最多可申请{剩余预算}元") else: print("✅ 预算充足,可以申请")
|
🧮 逻辑运算符:组合多个条件
三个逻辑运算符(让判断更精准)
| 运算符 | 含义 | 财务场景 |
|---|
and | 并且 | 发票有效且金额正确 |
or | 或者 | 是差旅费或办公费 |
not | 不是 | 不是个人消费 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 发票金额 = 8000 发票类型 = "专用发票" 是否预算内 = True 是否超期 = False 经理是否出差 = False
if 发票金额 > 5000 and 发票类型 == "专用发票": if 是否预算内 and not 是否超期: if not 经理是否出差: print("需要经理签字审批") else: print("经理出差,由副经理代签") else: print("不符合报销条件,退回处理") else: print("简化流程,直接报销")
|
💳 实战项目:智能消费提醒器
版本1.0:基础版消费提醒
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| print("=== 智能消费提醒器 ===")
消费金额 = float(input("请输入本次消费金额:")) 消费类别 = input("请输入消费类别(餐饮/购物/娱乐/交通/其他):") 账户余额 = float(input("请输入账户余额:"))
if 消费金额 > 账户余额: print("❌ 余额不足,无法消费!") elif 消费金额 > 账户余额 * 0.5: print("⚠️ 大额消费提醒:本次消费超过账户余额的50%") else: print("✅ 消费正常")
if 消费类别 == "餐饮" and 消费金额 > 500: print("💡 餐饮消费较高,建议下次选择更实惠的餐厅") elif 消费类别 == "购物" and 消费金额 > 1000: print("💡 购物金额较大,确认是否为必需品?") elif 消费类别 == "娱乐" and 消费金额 > 300: print("💡 娱乐消费适中,记得劳逸结合")
|
版本2.0:预算管理版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| print("=== 智能消费提醒器(含预算管理)===")
预算设置 = { "餐饮预算": 1500, "购物预算": 2000, "娱乐预算": 800, "交通预算": 500, "其他预算": 500 }
已用金额 = { "餐饮": 1200, "购物": 1500, "娱乐": 600, "交通": 400, "其他": 300 }
print("\n本月预算使用情况:") for 类别 in 预算设置: 预算金额 = 预算设置[类别] 类别名 = 类别.replace("预算", "") 已用 = 已用金额.get(类别名, 0) 剩余 = 预算金额 - 已用 使用率 = 已用 / 预算金额 * 100 print(f"{类别名}:{已用}/{预算金额}(剩余{剩余}元,使用率{使用率:.1f}%)")
消费金额 = float(input("\n请输入本次消费金额:")) 消费类别 = input("请输入消费类别(餐饮/购物/娱乐/交通/其他):")
if 消费类别 in 已用金额: 预算对应项 = f"{消费类别}预算" 预算金额 = 预算设置[预算对应项] 已用 = 已用金额[消费类别] 剩余 = 预算金额 - 已用 if 消费金额 > 剩余: print(f"❌ 消费金额超出预算!该类目本月只剩{剩余}元") 是否继续 = input("是否继续消费?(是/否):") if 是否继续 == "是": print("⚠️ 已记录超支消费,请注意控制其他支出") else: print("✅ 理性消费,为你点赞!") elif 消费金额 > 剩余 * 0.8: print("⚠️ 即将超出预算,消费后该类目剩余不多") else: print("✅ 消费在预算范围内") 使用率 = (已用 + 消费金额) / 预算金额 * 100 if 使用率 > 90: print("💡 本月该类目预算即将用完,下月记得调整") elif 使用率 < 30: print("💡 本月该类目预算使用较少,可以适当增加消费")
|
版本3.0:AI智能分析版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| print("=== AI智能消费分析器 ===")
历史数据 = { "平均月收入": 10000, "平均月支出": 7500, "应急储备": 20000, "信用卡额度": 50000, "信用评分": 720 }
消费金额 = float(input("请输入消费金额:")) 消费类别 = input("请输入消费类别:") 是否必需品 = input("是否为必需品(是/否):")
print("\n🤖 AI正在分析您的消费决策...")
if 历史数据["应急储备"] < 历史数据["平均月支出"] * 3: 财务健康度 = "偏低" 建议储备 = 历史数据["平均月支出"] * 3 - 历史数据["应急储备"] print(f"⚠️ 您的应急储备偏低,建议先储备{建议储备:.0f}元") else: 财务健康度 = "良好"
消费占收入比 = 消费金额 / 历史数据["平均月收入"] * 100 if 消费占收入比 > 50: 消费等级 = "高额" 风险提醒 = "这笔消费占您月收入的一半以上,请谨慎考虑" elif 消费占收入比 > 30: 消费等级 = "中等" 风险提醒 = "这笔消费适中,但请确保不影响其他必要支出" else: 消费等级 = "合理" 风险提醒 = "这笔消费在合理范围内"
if 消费类别 == "餐饮": 该类平均支出 = 1500 elif 消费类别 == "购物": 该类平均支出 = 2000 elif 消费类别 == "娱乐": 该类平均支出 = 800 else: 该类平均支出 = 1000
if 消费金额 > 该类平均支出 * 2: 类别评价 = "远超平均水平" else: 类别评价 = "正常范围"
if 历史数据["信用评分"] > 700: 信用等级 = "优秀" else: 信用等级 = "一般"
print(f"\n📊 AI分析报告:") print(f"财务健康度:{财务健康度}") print(f"消费等级:{消费等级}(占收入{消费占收入比:.1f}%)") print(f"类别对比:{类别评价}") print(f"信用等级:{信用等级}")
print(f"\n💡 个性化建议:") if 是否必需品 == "是": if 财务健康度 == "偏低": print("虽然是必需品,但建议您寻找性价比更高的选择") else: print("必需品可以购买,建议关注促销活动") else: if 消费等级 == "高额": print("非必需品且金额较高,建议延迟24小时再决定是否购买") else: print("非必需品,建议设置购买冷静期")
if 财务健康度 == "偏低" and 是否必需品 == "否": 最终建议 = "不建议购买" elif 消费等级 == "高额": 最终建议 = "谨慎购买" else: 最终建议 = "可以购买"
print(f"\n🎯 AI最终建议:{最终建议}")
if 最终建议 != "可以购买": print("\n🔄 替代方案建议:") print("1. 寻找同类产品促销信息") print("2. 考虑二手或租赁选项") print("3. 设置储蓄目标,延迟购买")
|
🏃♀️ 进阶小挑战
挑战1:智能报销审批系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| print("=== 智能报销审批系统 ===")
报销人 = input("报销人姓名:") 发票金额 = float(input("发票金额:")) 发票类型 = input("发票类型(专用/普通):") 消费类别 = input("消费类别(差旅/办公/招待/其他):") 发票日期 = input("发票日期(YYYY-MM-DD):") 是否预算内 = input("是否在预算内(是/否):")
print(f"\n📋 {报销人}的报销申请正在审批...")
当前年份 = 2024 发票年份 = int(发票日期[:4]) if 发票年份 != 当前年份: print("❌ 驳回:发票跨年,不能报销") else: print("✅ 发票时间检查通过")
if 发票金额 >= 10000: 审批级别 = "总经理" 预计审批时间 = "3个工作日" elif 发票金额 >= 5000: 审批级别 = "部门经理" 预计审批时间 = "1个工作日" else: 审批级别 = "直接主管" 预计审批时间 = "当日"
print(f"审批级别:{审批级别},预计时间:{预计审批时间}")
if 是否预算内 == "是": if 发票金额 <= 1000: print("✅ 小额预算内费用,快速审批") else: print("✅ 预算内费用,正常审批") else: print("⚠️ 预算外费用,需要特殊审批流程")
if 发票年份 == 当前年份 and 是否预算内 == "是": if 发票类型 == "专用发票": print("🎯 预计可以抵扣进项税,优先处理") print("✅ 审批通过概率:95%") else: print("⚠️ 需要补充材料,审批通过概率:60%")
|
挑战2:智能理财顾问
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| print("=== 智能理财顾问 ===")
年龄 = int(input("请输入您的年龄:")) 年收入 = float(input("请输入年收入(万元):")) * 10000 风险承受能力 = input("风险承受能力(保守/稳健/激进):")) 投资经验 = input("是否有投资经验(是/否):")) 理财目标 = input("理财目标(保值/稳健增值/高收益):"))
print(f"\n🤖 正在为您生成个性化理财方案...")
if 年龄 < 30: 年龄建议 = "年轻就是资本,可以适当配置高风险资产" 股票比例 = 70 elif 年龄 < 50: 年龄建议 = "中年稳健,平衡配置最重要" 股票比例 = 50 else: 年龄建议 = "年长者宜保守,保本第一" 股票比例 = 30
if 年收入 > 200000: 收入等级 = "高收入" 可投资比例 = 40 elif 年收入 > 100000: 收入等级 = "中等收入" 可投资比例 = 30 else: 收入等级 = "普通收入" 可投资比例 = 20
if 风险承受能力 == "保守": 股票比例 = max(10, 股票比例 - 20) elif 风险承受能力 == "激进": 股票比例 = min(80, 股票比例 + 20)
if 投资经验 == "否": 股票比例 = max(20, 股票比例 - 10)
if 理财目标 == "保值": 股票比例 = max(10, 股票比例 - 15) elif 理财目标 == "高收益": 股票比例 = min(75, 股票比例 + 15)
债券比例 = 100 - 股票比例 货币基金比例 = min(20, 债券比例 // 2)
print(f"\n📊 您的理财画像:") print(f"年龄阶段:{年龄建议}") print(f"收入等级:{收入等级}") print(f"风险承受能力:{风险承受能力}")
print(f"\n💰 推荐资产配置:") print(f"股票型基金:{股票比例}%") print(f"债券型基金:{债券比例 - 货币基金比例}%") print(f"货币基金:{货币基金比例}%")
月可投资金额 = 年收入 * 可投资比例 / 100 / 12 print(f"\n💡 投资建议:") print(f"建议月投资金额:{月可投资金额:.0f}元") print(f"可采用定投方式,分散投资风险")
if 股票比例 > 60: print("⚠️ 您的配置中股票比例较高,请注意市场风险") elif 股票比例 < 20: print("💡 您的配置过于保守,可能跑不赢通胀")
print(f"\n🎯 智能提醒:") print("1. 定期复盘投资组合(建议每季度)") print("2. 根据市场变化适时调整比例") print("3. 保持长期投资心态,避免追涨杀跌")
|
💭 今日思考
通过今天的学习,我们发现:
if 语句能把复杂的业务规则变成清晰的代码- 比较运算符比Excel的逻辑函数更直观易懂
📝 课后小结
- ✅ 掌握了
if 语句的三种形态 - ✅ 学会了6种比较运算符
- ✅ 理解了逻辑运算符的组合使用
- ✅ 制作了三个版本的智能消费提醒器
🎯 下节预告
下节我们将学习重复的艺术:循环语句,让Python帮你批量处理那些重复性的工作——批量生成报表、批量处理发票、批量发送邮件,从此告别“Ctrl+C、Ctrl+V”的机械劳动!
💡 小贴士
- 写条件判断时,先想清楚业务规则,再翻译成代码
- 复杂的判断条件可以分步写,先写主干再补充细节
- 多测试边界条件,比如等于5000元时程序怎么处理
🤖 Powered by Kimi K2 0905 💻 内容经葵葵🌻审核与修改