3.4-3.5 实战:个税查询、韩信点兵求人数 (课件)《Python程序编写入门》(高教版) 【上好课】
2026-08-18
|
33页
|
7人阅读
|
0人下载
精品
资源信息
| 学段 | 中职 |
| 学科 | 职教专业课 |
| 课程 | 程序设计基础 |
| 教材版本 | - |
| 年级 | 高一 |
| 章节 | - |
| 类型 | 课件 |
| 知识点 | 程序控制结构 |
| 使用场景 | 同步教学 |
| 学年 | 2026-2027 |
| 地区(省份) | 全国 |
| 地区(市) | - |
| 地区(区县) | - |
| 文件格式 | PPTX |
| 文件大小 | 17.52 MB |
| 发布时间 | 2026-08-18 |
| 更新时间 | 2026-08-18 |
| 作者 | 爱学习的muller |
| 品牌系列 | 上好课·上好课 |
| 审核时间 | 2026-08-18 |
| 下载链接 | https://m.zxxk.com/soft/59249336.html |
| 价格 | 5.00储值(1储值=1元) |
| 来源 | 学科网 |
|---|
内容正文:
Python程序设计实战:个税查询与韩信点兵
计 算 机 原 理
(电工版第五版)
学习目标
掌握多分支if语句解决复杂分段计算问题;理解枚举法(穷举法)的算法核心思想;熟练运用逻辑运算符and与取模运算%,解决条件判断中的复合逻辑验证场景。
能独立编写程序实现个税的自动计算与结果输出;能结合循环结构和条件判断,解决“韩信点兵”这类经典数学逻辑问题;初步具备代码语法调试与逻辑错误排查的实践能力。
培养用计算机编程解决实际生活问题的思维意识,感受算法逻辑在数学建模与问题求解中的独特魅力,在代码设计与调试中逐步提升逻辑思维的严密性与条理性。
1
2
3
知识目标
技能目标
素质目标
目录
实战1 个税查询
实战2 韩信点兵求人数
总结:知识点回顾与练习
教学引入
核心思考:如何将现实中的“分段计税规则”,转化为计算机能理解的代码逻辑?
编程挑战:个税计算器
如果月薪是 10000 元,到底该扣多少税?我们能不能利用 Python 的逻辑判断能力,编写一个自动计算器,实现“输入工资,自动出结果”?这节课,我们就来亲手打造这个实用工具!
知识讲授
七级超额累进税率
将应纳税所得额划分为七个等级,每个等级对应不同的税率标准。计算时仅对超过该等级上限的部分适用高一级税率,而非全部所得按高税率计征。这种计税方式能精准调节收入差距,是我国个人所得税计算的核心规则,体现了税负公平与收入再分配的原则。
枚举法(穷举法)
一种依托计算机高速运算能力的基础算法思想,核心是罗列出问题所有可能的解,并逐一验证是否符合条件,最终筛选出正确答案。它是编程中最直观、最易实现的算法之一,适用于解空间有限、规则明确的场景,如密码匹配、组合问题求解等,也是理解复杂算法逻辑的入门基础。
实战1 个税查询
第一部分
知识讲授
个税查询知识点——多分支结构
个税计算规则与背景
随着人民生活水平的 日益提高,工资逐年增长,为适应人民群众消费支出水平增长的趋势,提高人民的幸福指数,个人所得税( 个税)起征点由每月 3500 元提高至每月 5000 元 。我国实行七级超额累进税率:
知识讲授
级数 全月应纳税所得额( 元) 税率 速算扣除数( 元)
1 <3000 3% 0
2 [3000,12000) 10% 210
3 [12000,25000) 20% 1410
4 [25000,35000) 25% 2660
5 [35000,55000) 30% 4410
6 [55000,80000) 35% 7160
7 > = 80000 45% 15160
知识讲授
任务需求与思路
编写个税程序,运行后输入 5600,运行界面 、结果如图
导入与输入
判断结构选择
计算应税所得
确定分支数量
编写判断逻辑
本实战用到eval( )函数、input( )函数。
判断用多分支if语句来完成。
进行判断时,先减去起征点5000元,pay2=pay_5000。
多分支是几分支?这里隐含了一种小于5000元的情况,所以有8种情况,即8分支。
分支结构的判断如何写?依次从上到下,或者从下到上,不要打乱。
知识讲授
个税计算的逻辑流程
个税计算是结合顺序执行与条件判断的典型程序逻辑,我们将其拆解为四个核心步骤,清晰展现从获取收入数据到输出应纳税额的完整执行链路。
01 输入与预处理:接收用户月收入(pay),计算应纳税所得额 pay2 = pay - 5000
02 核心判断:若 pay2 ≤ 0 则税额为0;否则判断其所属的税率区间(如3000/12000档)
基于判断结果,执行计算与输出的收尾流程:
03 计税运算:套用公式:税额 = pay2 × 对应税率 - 速算扣除数
04 结果输出:向用户展示计算结果,包括应纳税额与税后实际收入
这一流程体现了程序“数据输入→逻辑处理→结果输出”的标准化执行模式。
核心总结:个税计算的逻辑不仅是简单的算术运算,更是“顺序结构+分支结构”的综合应用。其中,准确的条件判断是实现阶梯税率计算的关键,决定了最终结果的合规性与准确性。
知识讲授
知识补充:多分支选择结构
01. 结构选择:if-elif-else 多分支适配
面对包含“小于0”及7个数值区间的8种判断场景,优先使用if-elif-else结构,替代多层嵌套的if语句,可显著降低代码复杂度,提升逻辑清晰度与执行效率。
02. 书写规范:严格遵循区间顺序
条件必须按数值大小的升序或降序依次排列,严禁打乱顺序。若顺序错位会触发“逻辑短路”,导致后续符合条件的分支无法被程序正确匹配和执行。
03. 细节把控:明确区间边界归属
需精准定义边界值(如3000、12000)的包含关系,推荐采用“大于等于下限且小于上限”(>=a and <b)的组合方式,确保每个数值唯一匹配一个分支,杜绝漏判或重复匹配。
知识讲授
逻辑流程图
师生互动
完善下列代码
pay= (input("请输入月收入:")) #输入月收入,存入变量pay
pay2 = #5000 元以上征税,计算应纳税所得额,存入变量pay2中
if pay2 < = : #无征税收入,不征税
tax = 0 #不征税
e1if pay2 <3 0 0 0 : #0~3000( 不含 3000),按规则征税
tax =pay2*0.03 _0
e1if #3000~12000( 不含 12000),按规则征税
tax =pay2*0.1_210
e1if #12000~25000( 不含25000),按规则征税
float
pay - 5000
0
pay2 < 12000:
pay2 < 25000:
师生互动
完善下列代码
elif pay2 <35000 : #25000~35000( 不含 35000),按规则征税tax=pay2 * 0.25_2660
elif pay2 <55000 : #35000~55000( 不含 55000),按规则征税tax=pay2 * 0.3_4410
elif pay2 <80000 : #55000~80000( 不含 80000),按规则征税
tax=pay2 * 0.35_7160
#> =80000 ,按规则征税
tax=pay2 * 0.45_15160
print( "扣税:", ) #打印扣税
print( "税后收入:", ) #打印税后收入
else:
tax = pay2 * 0.45 - 15160
tax
pay - tax)
背诵记忆
序号 核心考点 记忆要点与核心解析
01 个税起征点常量 个税计算的基础扣除基数为5000元,是计算应纳税所得额的核心起点数值。
记忆口诀:“计税先减五千元,基数扣除要记牢”
02 多分支判断结构 采用if-elif-else语法实现“多选一”的逻辑判断,精准匹配数值所属的不同区间范围。
记忆口诀:“多条件来排排站,分支只选一个办”
03 转换与速算要点 eval()实现输入字符串转数值,速算扣除数是简化超额累进税率计算的固定减项数值。
记忆口诀:“eval转数输得对,扣除数儿直接减”
师生互动
例题分析:工资纳税的边界条件
01 问题场景与分析目标
假设用户输入的月工资为4500元(低于5000元个税起征点),我们需要分析程序应如何正确处理这种边界情况。这是典型的分支结构逻辑测试,核心目标是验证程序是否能识别“无需纳税”的条件,并输出正确的税额结果,同时明确多分支判断中条件的优先级关系。
02 核心分析与推导过程
1.差额计算:应纳税所得额 pay2 = 4500 - 5000 = -500 元;
2.逻辑判断:pay2 < 0,不满足任何纳税档位的正向条件;
3.业务结论:未达起征点,应直接判定税额为 0 元;
4.逻辑定位:属于多分支判断中隐含的“前置/兜底”情况。
03 代码实现与逻辑优化
•优先处理:在 if-elif 开头增加 pay2 <= 0 的判断,直接输出税额0;
•逻辑严谨性:覆盖“工资为0”或“负数工资”等异常输入场景;
•效率提升:前置无效条件判断,避免后续分支的冗余计算;
•总结:边界条件是程序健壮性的核心,需提前预判。
课堂练习
单选题
我国个人所得税以 5000 元为起征点,pay为月总收入,pay2=pay‑5000代表应纳税所得额,使用如下 Python 片段计算个税:
若某人月总收入pay=15000,则变量tax的值为()
A. 790
B. 990
C. 1000
D. 1200
答案:A
解析:
①应纳税所得额:pay2=15000‑5000=10000。
②if‑elif从上往下判断,满足即执行,不再判断后续分支。10000<12000条件成立,tax=10000*0.1‑210=790。
③考点:多分支 elif 的执行规则。
韩信点兵求人数
第二部分
知识讲授
韩信点兵求人数
模块二
韩信点兵问题分析
01 问题背景:相传韩信统率大军,为了快速统计士兵人数,通过不同的列队方式观察余数。已知士兵总数 x 大于 1000,需根据以下三个列队余数条件,求解满足所有条件的最小士兵总数。
⚔️ 3人一排 余2
x % 3 == 2
含义:总数除以3余2,若再增加1人即可整除3,凑成整排。
🏹 5人一排 余4
x % 5 == 4
含义:总数除以5余4,若再增加1人即可整除5,无余数。
🚩 7人一排 余6
x % 7 == 6
含义:总数除以7余6,若再增加1人即可整除7,刚好排完。
🎯 求解目标:找到满足上述三个同余条件,并且大于 1000 的最小自然数 x。这是经典的“中国剩余定理”应用场景,在编程中可通过循环遍历结合取模运算高效求解。
知识补充
枚举法(穷举法)核心原理
枚举法:从“逐一验证”到锁定答案
01 核心思想:利用计算机的高速运算优势,从预设初始值(如1000)开始,对每个整数进行条件校验,直到找到符合所有要求的解。
02 执行流程:初始化人数=1000 → 检查是否满足余数条件 → 满足则输出并结束 → 不满足则人数+1 → 循环验证直至找到结果。
03 方法特性:【优点】逻辑极简,代码编写不易出错,适合入门理解;【缺点】当目标数值极大时,会因大量重复计算导致运行效率较低。
知识讲授
逻辑流程图
本实战用到了枚举法(穷举法),士兵的人数满足条件(除以3 余数为2,除以5 余数为 4,除以7 余数为6),并且士兵人数 1000 人以上,所以对于 1000 及以后的所有数字,从小到大,一个个进行条件判断,直到条件满足,找到真正士兵人数(答案)为止 。
实战分析
韩信点兵问题求解
01 问题背景与核心思路
这是一个经典的枚举算法应用场景,核心是通过逐一验证来找到符合条件的解。题目已知“士兵人数在1000人以上”,因此将初始值设为1000而非0,能有效减少无效的循环计算,提升程序执行效率。我们需要通过循环结构逐个检查数值,直到找到满足所有余数条件的那个数。
核心逻辑:从1000开始逐个递增,验证是否满足“三三数之剩二,五五数之剩三,七七数之剩二”等条件,找到即止。
02 核心代码实现步骤
1.初始设定:定义变量 x = 1000,作为枚举的起始点;
2.循环验证:使用 while True 构建无限循环,持续检查;
3.条件判断:用 and 连接多个余数条件(如 x%3==2);
4.结果输出:满足条件则 print(x) 并 break,否则 x += 1。
03 逻辑优化与易错点解析
•效率优化:利用题目已知范围设定起点,避免无效遍历;
•逻辑严谨:务必使用 and 连接条件,确保同时满足所有要求;
•防止死循环:找到答案后必须使用 break 跳出循环;
•数学优化:熟练后可尝试用中国剩余定理直接计算,减少循环。
师生互动
完善下列代码
n = 1000
True
and n % 5 ==4 and n %7 ==6
break
n = n + 1
n
背诵记忆
序号 核心考点 记忆要点与核心解析
01 枚举法 本题核心解题思想:从假定的 1000 人开始,对自然数逐个验证,直到找到同时满足三个余数条件的最小数。
记忆要点:按顺序逐个尝试,符合条件就停止。
02 while 无限循环 枚举法的代码载体:用while True构建持续循环,从 n=1000 开始,每轮检查一个数字,实现逐个试数。
记忆要点:循环不停遍历所有可能的人数。
03 if-else 双分支 组合判断条件:用and连接 “三三剩二、五五剩四、七七剩六” 三个条件,要求三个条件同时成立,才是正确人数。
记忆要点:and 两边全为真,整体条件才成立。
随堂检测
单选题
题目3:下列关于枚举法的描述,错误的是( )。
A. 逻辑简单清晰,程序编写易于实现
B. 更适合解决解空间规模较小的问题场景
C. 实现时必须使用 for 循环结构来完成
D. 当解空间过大时,执行效率可能会较低
【答案】C
【解析】枚举法的实现并不依赖特定的循环结构,for循环和while循环都可以用来实现枚举逻辑,因此C选项“必须使用for循环”的表述过于绝对,是错误的。A、B、D三项分别描述了枚举法逻辑简单、适用场景以及效率特性,均为正确的描述。
随堂检测
基础巩固 · 单选题
01. 个税计算中,若应纳税所得额为10000元,对应税率是( )。
A. 3% B. 10% C. 20% D. 25%
02. 在Python编程中,算术表达式 10 % 3 的计算结果是( )。
A. 1 B. 3 C. 3.33 D. 9
【答案与解析】
01. 正确答案:B(10%) ——10000元处于个税税率表的“超过3000元至12000元”区间,对应第2级税率标准,即10%。
02. 正确答案:A(1) ——Python中“%”为取模运算符,用于计算两数相除后的余数。10除以3商3余1,因此结果为1。
分组讨论
01
思考:如何优化“韩信点兵”的解题效率?
在解决韩信点兵问题时,我们最初采用从1000开始逐个验证的枚举法,虽然能得到结果,但效率较低。请大家分组讨论:有没有更巧妙的数学方法,能避开“一个个试”的繁琐过程,快速锁定符合条件的数值?
💡 关键线索:观察余数与除数的关系
仔细看题目条件:除以3余2、除以5余4、除以7余6。你会发现一个规律——每个余数都比对应的除数恰好小1。如果我们给这个数“补1”,它就会同时被3、5、7整除。利用这个特性,能否推导出一个更直接的计算公式?
拓展探究
中国剩余定理
图示:大衍求一术的同余方程模型
展现了模数互质下的求解逻辑
01 从趣味谜题到数论基石
韩信点兵问题是“中国剩余定理”的经典特例。该定理证明了:若模数两两互质,则一元线性同余方程组必有唯一解。这不仅是中国古代数学的瑰宝,更是现代数论中求解同余问题的核心理论依据。
02 数学原理赋能算法效率
虽然枚举法能解决小规模问题,但基于该定理可推导出O(1)时间复杂度的计算方法。理解其数学本质,能帮助我们跳出“暴力循环”的思维定式,为大规模数据场景下的高效求解提供理论支撑,实现算法的质的飞跃。
💡 核心启示:算法的优化往往源于对数学原理的深刻理解,将抽象的数论知识转化为具体的逻辑实现,是突破程序性能瓶颈的关键路径。
知识讲授
拓展:代码的健壮性
核心:让程序具备“容错能力”
01 痛点:不可控的用户输入
编写个税查询程序时,用户可能输入负数、字母(如“abc”)等非法内容。若不处理,程序会直接报错崩溃,无法正常运行。
02 对策:双重防护机制
• 前置判断:用 if 语句检查输入格式与范围,提前拦截非法值;
• 异常捕获:用 try-except 结构捕获转换异常,兜底处理意外情况。
03 价值:提升体验与稳定性
触发错误时,程序不闪退,而是提示“输入错误,请重新输入”,引导用户修正,这是专业程序必备的健壮性设计。
知识小结
课后任务
布置作业:
1.绘制本节课完整思维导图(涵盖多分支elif、个税程序逻辑、取模运算、枚举法、韩信点兵实现)。
2.完成课件配套单选、代码填空练习题。
3.自主优化两段实战程序,增加对输入字母、负数的非法输入容错处理,并提交运行结果。
谢谢观看
THANKS
Lavf59.14.100
$
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。