aoi学院

Aisaka's Blog, School of Aoi, Aisaka University

Python-第4篇《条件判断:让程序学会思考》

📖 开篇语

还记得你第一次审核报销单时的场景吗?

“发票金额超过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. 简单判断(单一条件)

    1
    2
    3
    4
    5
    6
    # 报销单是否超期
    报销日期 = "2024-01-15"
    当前日期 = "2024-01-25"

    if 当前日期 > 报销日期:
    print("提醒:该报销单已超期,请尽快处理!")
  2. 双向判断(非此即彼)

    1
    2
    3
    4
    5
    6
    7
    8
    # 判断发票是否有效
    发票年份 = 2024
    当前年份 = 2024

    if 发票年份 == 当前年份:
    print("✅ 发票有效,可以报销")
    else:
    print("❌ 发票过期,不能报销")
  3. 多向判断(多种情况)

    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
# 场景1:费用标准检查
住宿费 = 850
标准限额 = 800

if 住宿费 > 标准限额:
超标金额 = 住宿费 - 标准限额
print(f"住宿费超标{超标金额}元,超标部分需要自理")
else:
print("住宿费在标准范围内,可以全额报销")

# 场景2:发票合规检查
发票类型 = "专用发票"
发票金额 = 10000
发票日期 = "2024-01-15"

if 发票类型 == "专用发票" and 发票金额 >= 10000:
print("需要填写《大额发票申请表》")
elif 发票类型 == "普通发票" or 发票金额 < 1000:
print("简化流程处理")
else:
print("按正常流程审批")

# 场景3:预算控制提醒
预算总额 = 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
# 智能消费提醒器 - AI分析版
print("=== AI智能消费分析器 ===")

# 模拟用户历史数据
历史数据 = {
"平均月收入": 10000,
"平均月支出": 7500,
"应急储备": 20000,
"信用卡额度": 50000,
"信用评分": 720
}

# 输入当前消费
消费金额 = float(input("请输入消费金额:"))
消费类别 = input("请输入消费类别:")
是否必需品 = input("是否为必需品(是/否):")

# AI综合分析
print("\n🤖 AI正在分析您的消费决策...")

# 1. 财务健康度评估
if 历史数据["应急储备"] < 历史数据["平均月支出"] * 3:
财务健康度 = "偏低"
建议储备 = 历史数据["平均月支出"] * 3 - 历史数据["应急储备"]
print(f"⚠️ 您的应急储备偏低,建议先储备{建议储备:.0f}元")
else:
财务健康度 = "良好"

# 2. 消费合理性分析
消费占收入比 = 消费金额 / 历史数据["平均月收入"] * 100
if 消费占收入比 > 50:
消费等级 = "高额"
风险提醒 = "这笔消费占您月收入的一半以上,请谨慎考虑"
elif 消费占收入比 > 30:
消费等级 = "中等"
风险提醒 = "这笔消费适中,但请确保不影响其他必要支出"
else:
消费等级 = "合理"
风险提醒 = "这笔消费在合理范围内"

# 3. 类别消费分析
if 消费类别 == "餐饮":
该类平均支出 = 1500
elif 消费类别 == "购物":
该类平均支出 = 2000
elif 消费类别 == "娱乐":
该类平均支出 = 800
else:
该类平均支出 = 1000

if 消费金额 > 该类平均支出 * 2:
类别评价 = "远超平均水平"
else:
类别评价 = "正常范围"

# 4. 信用影响评估
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("非必需品,建议设置购买冷静期")

# 5. 智能决策
if 财务健康度 == "偏低" and 是否必需品 == "否":
最终建议 = "不建议购买"
elif 消费等级 == "高额":
最终建议 = "谨慎购买"
else:
最终建议 = "可以购买"

print(f"\n🎯 AI最终建议:{最终建议}")

# 6. 替代方案
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📋 {报销人}的报销申请正在审批...")

# 1. 发票有效性检查
当前年份 = 2024
发票年份 = int(发票日期[:4])
if 发票年份 != 当前年份:
print("❌ 驳回:发票跨年,不能报销")
else:
print("✅ 发票时间检查通过")

# 2. 金额审批流程
if 发票金额 >= 10000:
审批级别 = "总经理"
预计审批时间 = "3个工作日"
elif 发票金额 >= 5000:
审批级别 = "部门经理"
预计审批时间 = "1个工作日"
else:
审批级别 = "直接主管"
预计审批时间 = "当日"

print(f"审批级别:{审批级别},预计时间:{预计审批时间}")

# 3. 预算检查
if 是否预算内 == "是":
if 发票金额 <= 1000:
print("✅ 小额预算内费用,快速审批")
else:
print("✅ 预算内费用,正常审批")
else:
print("⚠️ 预算外费用,需要特殊审批流程")

# 4. 综合判断
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🤖 正在为您生成个性化理财方案...")

# 1. 年龄因素评估
if 年龄 < 30:
年龄建议 = "年轻就是资本,可以适当配置高风险资产"
股票比例 = 70
elif 年龄 < 50:
年龄建议 = "中年稳健,平衡配置最重要"
股票比例 = 50
else:
年龄建议 = "年长者宜保守,保本第一"
股票比例 = 30

# 2. 收入因素评估
if 年收入 > 200000:
收入等级 = "高收入"
可投资比例 = 40
elif 年收入 > 100000:
收入等级 = "中等收入"
可投资比例 = 30
else:
收入等级 = "普通收入"
可投资比例 = 20

# 3. 风险偏好调整
if 风险承受能力 == "保守":
股票比例 = max(10, 股票比例 - 20)
elif 风险承受能力 == "激进":
股票比例 = min(80, 股票比例 + 20)

# 4. 投资经验调整
if 投资经验 == "否":
股票比例 = max(20, 股票比例 - 10)

# 5. 理财目标调整
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"货币基金:{货币基金比例}%")

# 6. 投资建议金额
月可投资金额 = 年收入 * 可投资比例 / 100 / 12
print(f"\n💡 投资建议:")
print(f"建议月投资金额:{月可投资金额:.0f}元")
print(f"可采用定投方式,分散投资风险")

# 7. 风险提示
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 💻 内容经葵葵🌻审核与修改