版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/2Python程序设计任务式教程教案课程名称:Python程序设计适用对象:高职计算机类专业学生教材参考:《Python程序设计任务式教程》总课时:64课时(理论32+实践32)单元1:文创商品销售系统概述一、课程信息课时:4课时(理论2+实践2)二、学习目标【记忆】学生能够准确说出Python安装的三个关键步骤和VSCode中Python插件安装的方法,在实操步骤中无遗漏,正确率达95%。【理解】学生能够解释Python程序的执行过程和基本输入输出语句的作用,用自己的话描述print()函数和input()函数的工作原理,表述准确清晰。【应用】学生能够在VSCode中创建、保存并运行一个简单的Python程序,使用print()函数输出指定内容,使用input()函数获取用户输入,程序能够正常运行且输出正确结果。【分析】学生能够分析不同输入输出场景下代码的编写方法,针对不同的输出需求(如换行、不换行、格式控制等)选择合适的print()函数参数,并能解释为什么使用不同的参数实现不同的输出效果。【创造】学生能够设计并编写一个简单的交互式程序,结合输入输出语句实现一个小型问答或信息收集功能,代码结构清晰,功能完整。三、内容模块模块一:Python开发环境介绍(30分钟)核心知识点:"文创宝盒"系统功能概述Python编程语言概述Python安装的必要性和准备工作VSCode作为开发环境的优势教学活动:讲授(10分钟):介绍Python的历史特点和应用领域,重点讲解Python在"文创宝盒"系统开发中的优势,对比其他编程语言(如Java、C语言)的异同点。互动(10分钟):学生小组讨论"Python在不同领域的应用案例",每组列举2-3个Python在实际工作中的应用场景,并说明选择Python的原因。实操(10分钟):演示Python官方网站的访问和下载流程,学生跟随操作完成Python下载准备步骤。教学方法:案例教学、小组讨论法、演示法模块二:安装Python(15分钟)核心知识点:Python安装包的选择与下载Python安装过程的注意事项Python安装成功的验证方法教学活动:讲授(5分钟):详细讲解Python安装包的选择标准(操作系统、位数、版本),演示安装过程中的关键步骤和注意事项。演示(5分钟):教师实际演示Python安装过程,重点讲解自定义安装选项和路径设置。练习(5分钟):学生独立完成Python安装,教师巡视指导,解决安装过程中遇到的问题。教学方法:演示法、实操演练法模块三:Python交互模式体验(5分钟)核心知识点:Python交互模式的启动方法简单Python指令的执行交互模式的基本操作命令教学活动:演示(3分钟):演示如何启动Python交互模式,介绍">>>"提示符的含义,演示简单算术运算和基本指令。练习(2分钟):学生在交互模式下执行简单指令(如"2+3"、"print('Hello')"等),体验交互模式的使用。教学方法:演示法、实操演练法模块四:VSCode安装与配置(15分钟)核心知识点:VSCode的特点与优势VSCode下载与安装流程Python插件的安装与配置教学活动:讲授(5分钟):介绍VSCode的特点和功能,对比其他Python开发环境(如PyCharm、IDLE)的优缺点。演示(5分钟):演示VSCode的下载、安装过程,重点演示Python插件的搜索、安装和配置方法。实操(5分钟):学生独立完成VSCode安装和Python插件配置,教师巡视指导。教学方法:演示法、实操演练法模块五:创建第一个Python程序(30分钟)核心知识点:VSCode中创建Python文件的方法Python文件的基本结构程序的保存与运行方法教学活动:演示(10分钟):演示如何在VSCode中创建Python文件,保存为.py文件,以及运行程序的多种方法。练习(20分钟):学生创建并运行第一个Python程序("HelloWorld!"),尝试使用不同的运行方式,教师巡视指导。教学方法:演示法、实操演练法模块六:基本输出语句print()(15分钟)核心知识点:print()函数的基本用法print()函数的参数(如end参数)输出内容的格式控制教学活动:讲授(5分钟):详细讲解print()函数的语法和常用参数,演示不同参数的使用效果。演示(5分钟):演示各种输出场景下的print()函数使用方法,包括换行输出、不换行输出、多参数输出等。练习(5分钟):学生编写多个print()语句实现不同的输出效果,如输出问候语、多行文本、表格格式等。教学方法:演示法、实操演练法模块七:基本输入语句input()(15分钟)核心知识点:input()函数的基本用法input()函数的返回值类型输入信息的处理与存储教学活动:讲授(5分钟):详细讲解input()函数的语法和工作原理,强调其返回值总是字符串类型。演示(5分钟):演示input()函数的使用方法,包括提示信息的设置、输入内容的获取和存储。练习(5分钟):学生编写程序获取用户输入,并将输入内容与输出语句结合使用,实现简单的交互功能。教学方法:演示法、实操演练法模块八:综合案例——"文创宝盒"欢迎界面(30分钟)核心知识点:输入输出语句的综合应用程序设计的基本流程简单交互界面的实现教学活动:讲授(10分钟):介绍"文创宝盒"系统欢迎界面的需求分析,讲解实现思路和代码结构。演示(10分钟):演示如何结合input()和print()函数创建"文创宝盒"系统欢迎界面,实现用户名输入和个性化问候。实操(10分钟):学生独立编写并实现一个"文创宝盒"欢迎界面程序,教师巡视指导,组织学生展示成果。教学方法:案例教学、演示法、实操演练法模块九:AI辅助编程工具介绍(15分钟)核心知识点:通义灵码等AI编程辅助工具的安装方法AI工具在编程学习中的应用场景合理使用AI工具的注意事项教学活动:演示(10分钟):演示通义灵码等AI编程辅助工具的安装方法和基本使用。讨论(5分钟):小组讨论"如何合理利用AI工具辅助编程学习",分享各自的观点和经验。教学方法:演示法、小组讨论法模块十:课程总结与拓展(10分钟)核心知识点:课程内容回顾常见错误与解决方法后续学习方向教学活动:总结(5分钟):回顾Python环境搭建和基础编程的关键知识点,总结常见错误及其解决方法。拓展(5分钟):介绍Python学习的后续方向,提供学习资源和方法建议,布置课后拓展任务。教学方法:讲授法、问答法时间分配表环节时长占比模块一:Python开发环境介绍30分钟16.7%模块二:安装Python15分钟8.3%模块三:Python交互模式体验5分钟2.7%模块四:VSCode安装与配置15分钟8.3%模块五:创建第一个Python程序30分钟16.7%模块六:基本输出语句print()15分钟8.3%模块七:基本输入语句input()15分钟8.3%模块八:综合案例——"文创宝盒"欢迎界面30分钟16.7%模块九:AI辅助编程工具介绍15分钟8.3%模块十:课程总结与拓展10分钟5.5%总计180分钟100%单元2:Python基础一、课程信息课时:8课时(理论4+实践4)二、学习目标【记忆】学生能够准确复述Python标识符的命名规则和关键字的数量,在课堂小测中正确率达到90%以上。【理解】学生能够解释变量赋值、数据类型转换的原理以及字符串索引和切片的工作原理,用自选的案例进行描述,逻辑清晰无歧义。【应用】学生能够根据给定的“文创宝盒”任务描述,正确使用变量、数据类型、运算符和输入输出语句,独立编写程序并成功运行,输出结果符合预期。【分析】学生能够分析一段包含多种运算符(算术、比较、逻辑)的复合表达式,正确预测其运算顺序和最终结果,准确率达80%以上。【应用】学生能够运用选择结构和循环结构,编写程序解决“用户注册与登录验证”、“商品选购”等实际业务逻辑问题,程序结构完整,逻辑正确。【创造】学生能够综合运用本单元知识,设计并实现一个包含数据存储、条件判断和循环验证的“文创宝盒”系统核心交互模块,代码结构清晰,功能完整。三、内容模块模块一:【代码规范与命名规则】(20分钟)核心知识点:Python的代码布局:缩进、单行/多行语句、空格使用代码注释:单行注释、多行注释、VSCode快捷操作标识符与关键字:命名规则、关键字查看、命名规范(见名知意、下划线命名法)教学活动:讲授(12分钟):结合PPT讲解Python代码规范的重要性,通过正反案例对比演示缩进错误导致的语法错误,讲解注释的写法和标识符命名规则。互动(5分钟):学生两人一组,互相检查对方写的一段简单代码(如print(“hello”))是否符合命名规范,找出并改正其中的问题。练习(3分钟):学生在VSCode中快速创建三个合法的标识符(如user_name,
product_price,
total_count)并加上单行注释说明其用途。教学方法:案例对比教学法、同伴互评法模块二:【变量赋值与数据类型】(20分钟)核心知识点:变量的定义与赋值:直接赋值、多重赋值、变量交换Python六种基本数据类型概述(字符串、数字、列表、元组、集合、字典)常量的约定写法教学活动:讲授(10分钟):通过“文创宝盒”中需要存储的用户名、密码、商品价格等数据,引入变量的概念。演示赋值操作,并介绍六大数据类型及其应用场景。互动(5分钟):小组讨论:“除了‘文创宝盒’,生活中还有哪些数据可以用变量表示?它们分别属于什么数据类型?”每组列举2个例子。练习(5分钟):学生完成代码填空:实现两个变量a=1,b=2的值的交换,并使用print输出交换后的结果。教学方法:情境导入法、小组讨论法模块三:【数字类型与类型转换】(15分钟)核心知识点:数字类型的细分:整数(int)、浮点数(float)、布尔值(bool)、复数(complex)类型转换函数:int(),
float(),
str(),
eval()使用type()函数查看变量类型教学活动:讲授(8分钟):讲解不同数字类型的特点(如整数无大小限制,浮点数有精度问题),演示类型转换函数的使用场景及常见错误(如字符串含非数字字符)。演示(4分钟):教师演示如何将用户输入的字符串成绩(如“85.5”)转换为浮点数进行后续计算,并处理可能的转换异常。练习(3分钟):学生编写代码:从键盘输入一个数字字符串,将其转换为整数和浮点数分别打印,并输出其原始类型和转换后的类型。教学方法:演示法、实操演练法模块四:【字符串的创建与转义】(15分钟)核心知识点:字符串的三种创建方式:单引号、双引号、三引号转义字符的使用(如\n,
\t,
\\,
\')原始字符串(前缀r)的作用教学活动:讲授(8分钟):讲解不同引号的使用场景(如字符串中包含单引号时使用双引号),通过【例2-1】讲解常见转义字符的效果。互动(4分钟):教师给出一个包含多种特殊字符的路径字符串(如C:\Users\name\newfile.txt),学生讨论如何正确书写并输出。练习(3分钟):学生使用三引号创建一个包含换行和制表符的多行字符串(如一首诗),并使用print输出查看格式效果。教学方法:问题驱动法、演示法模块五:【字符串操作:拼接、索引与切片】(20分钟)核心知识点:字符串拼接:使用+运算符(注意类型一致)字符串索引:正向索引(从0开始)与负向索引(从-1开始)字符串切片:[start:end:step],含头不含尾,省略参数的含义教学活动:讲授(10分钟):通过“提取商品编号中的特定部分”案例,讲解索引和切片的概念。详细演示切片的各种用法,特别是负索引和步长的使用。演示(5分钟):教师演示给定字符串‘PythonProgramming’,如何切片得到‘Python’,‘Programming’,以及反向字符串。练习(5分钟):学生操作:给定字符串‘Hello,文创宝盒!’,编写代码分别提取出‘文创’和‘宝盒’这两个词并打印。教学方法:案例教学法、演示法模块六:【字符串的常用方法】(20分钟)核心知识点:常用字符串方法:len(),
split(),
find(),
count(),
upper()/lower(),
strip(),
replace()字符串判断方法:isdigit(),
isalpha(),
isalnum()VSCode的代码提示功能教学活动:讲授(10分钟):结合“用户注册时验证密码长度和内容”的需求,讲解len()、isdigit()等方法。通过表格系统介绍其他常用方法的功能。互动(5分钟):学生使用VSCode,在已定义的字符串变量后输入“.”,探索开发环境提供的其他字符串方法,并尝试使用一个(如startswith())。练习(5分钟):学生编写代码:模拟清洗用户输入的用户名,去除首尾空格,并全部转换为小写后输出。教学方法:任务驱动法、探索学习法模块七:【字符串格式化输出】(15分钟)核心知识点:f-string格式化:基本用法、表达式求值、格式控制(如:.2f)格式化输出对齐:<(左对齐)、>(右对齐)、^(居中)format()方法的基本使用教学活动:讲授(8分钟):对比传统拼接与f-string,讲解f-string的便捷性和强大功能。演示如何控制小数位数和对齐方式。演示(4分钟):教师演示【例2-3】,并扩展:输出一个商品信息表,要求价格列右对齐并保留两位小数。练习(3分钟):学生使用f-string,将变量name=‘张三’,money=158.6格式化为:“张三同学,您的账户余额为158.60元。”并打印。教学方法:对比教学法、演示法模块八:【运算符与表达式(上)】(20分钟)核心知识点:算术运算符:+,
-,
*,
/,
//,
%,
**位运算符:&,
|,
^,
~,
<<,
>>(概念与简单应用)运算符的优先级概念教学活动:讲授(12分钟):重点讲解整除//与取余%的区别和用途(如判断奇偶、获取数位),通过【例2-6】简介位运算。互动(5分钟):快速问答:计算2**3,
9//2,
9%2,并解释%在判断闰年条件(year%4==0)中的作用。练习(3分钟):学生编程:输入一个三位整数,利用整除和取余运算,逆序输出这个数(如输入123,输出321)。教学方法:讲授法、问答法模块九:【运算符与表达式(下)】(15分钟)核心知识点:比较运算符:>,
<,
==,
!=,
>=,
<=逻辑运算符:and,
or,
not及其短路特性成员运算符与身份运算符:in,
is教学活动:讲授(8分钟):讲解比较与逻辑运算符,重点剖析“短路”特性如何提升效率。通过“闰年判断”案例,演示复杂逻辑表达式的构建。演示(4分钟):教师演示短路特性:运行3>4andprint(‘hello’),观察无输出,解释原因。练习(3分钟):学生编写一个逻辑表达式,用于判断用户输入的年龄age是否在18到60岁(含)之间,并将表达式写在注释中。教学方法:案例教学法、演示法模块十:【条件表达式与优先级】(15分钟)核心知识点:条件表达式(三元运算符):xifconditionelsey运算符的优先级与结合性总览使用圆括号()明确运算顺序教学活动:讲授(8分钟):讲解条件表达式的语法,对比其与完整if语句的异同。通过表2-9总览优先级,强调圆括号的作用。互动(4分钟):教师给出一个复杂表达式(如a+b*c**2),学生分组讨论其运算顺序,并用括号显式标出。练习(3分钟):学生使用条件表达式改写一段简单的双分支if语句(如求两个数中的较大值)。教学方法:对比分析法、小组讨论法模块十一:【选择结构:if与if-else】(20分钟)核心知识点:简单if语句的语法与流程图双分支if-else语句的语法与流程图缩进与冒号的严格规范教学活动:讲授(10分钟):通过“根据分数判断是否及格”案例,讲解if和if-else的语法。使用流程图清晰展示程序执行的两种路径。演示(5分钟):教师演示【例2-8】,展示字符大小写转换,并故意制造一个缩进错误,让学生观察错误信息。练习(5分钟):学生编写程序:模拟“文创宝盒”登录,输入密码,如果等于预设密码“123456”则打印“登录成功”,否则打印“密码错误”。教学方法:流程图教学法、纠错教学法模块十二:【选择结构:多分支与嵌套】(20分钟)核心知识点:多分支if-elif-else语句的语法与流程图嵌套if语句的语法与应用场景多分支与嵌套结构的对比与选择教学活动:讲授(10分钟):通过“成绩等级划分”案例(【例2-9】),讲解多分支if语句。通过“闰年判断”案例,对比讲解逻辑表达式实现与嵌套if实现。互动(5分钟):学生分析任务2-2(用户注册)的代码,指出其中使用了哪种选择结构,并画出其逻辑判断的流程图草图。练习(5分钟):学生将嵌套if的闰年判断代码,改写为用多分支if-elif-else结构实现。教学方法:对比教学法、案例分析法模块十三:【循环结构:while循环】(20分钟)核心知识点:while循环的语法与流程图循环四要素:初始化变量、条件判断、循环体、更新变量避免无限循环教学活动:讲授(10分钟):通过“重复输入密码直到正确”的需求引入while循环。详细讲解循环四要素,并通过【例2-10】演示阶乘计算。演示(5分钟):教师演示一个简单的无限循环案例,然后通过添加正确的循环条件或break来修正它。练习(5分钟):学生编写程序:使用while循环计算1到100之间所有奇数的和。教学方法:要素归纳法、纠错演示法模块十四:【循环结构:for循环与range()】(20分钟)核心知识点:for...in循环的语法,遍历序列range()函数的三种用法:range(stop),
range(start,stop),
range(start,stop,step)while与for循环的适用场景比较教学活动:讲授(10分钟):讲解for循环用于遍历字符串、列表等序列的特性。重点讲解range()函数在生成数字序列配合for循环的用法(【例2-13,2-14】)。互动(5分钟):学生讨论:计算1到n的累加和,分别用while和for循环实现,哪种更简洁?为什么?练习(5分钟):学生使用for循环和range(),打印出九九乘法表的第一行(1x1=1到1x9=9)。教学方法:对比讨论法、实操演练法模块十五:【循环控制:break与continue】(15分钟)核心知识点:break语句:彻底终止当前循环continue语句:跳过本轮循环剩余代码,进入下一轮两者在流程图中的表现与区别教学活动:讲授(8分钟):通过“查找字符首次出现位置”(【例2-15】)案例讲解break;通过“累加偶数”(【例2-16】)案例讲解continue。用流程图清晰对比两者对循环流程的影响。演示(4分钟):教师在同一段循环代码中分别演示break和continue的效果,让学生直观感受循环变量值的变化和输出差异。练习(3分钟):学生修改之前编写的“1到100奇数和”代码,使用continue实现(遇到偶数则跳过)。教学方法:流程图对比法、演示法模块十六:【综合任务:存储与显示商品数据】(20分钟)核心知识点:变量定义与命名输入输出语句的综合运用字符串格式化输出教学活动:任务分析(5分钟):教师带领学生分析【任务2-1】的需求,明确需要哪些变量,输入输出是什么。演示(7分钟):教师演示任务完整代码的编写过程,边写边讲解思路,特别是f-string在价格计算和输出中的应用。独立实现(8分钟):学生根据演示和文档,独立编写并运行代码,实现任务要求。教师巡视指导。教学方法:任务驱动法、演示法模块十七:【综合任务:实现用户注册逻辑】(15分钟)核心知识点:多分支选择结构的应用字符串长度判断len()逻辑运算符and在条件判断中的使用教学活动:代码回顾(5分钟):教师引导学生阅读文档中【任务2-2】的已给代码,分析其多分支判断逻辑(空值判断、长度判断、成功注册)。拓展练习(10分钟):学生在已给代码基础上进行修改:增加一个条件,判断用户名是否已包含在预设列表[‘admin’,‘user1’]中,如果已存在则提示“用户名已被占用”。教学方法:代码阅读法、拓展任务法模块十八:【综合任务:多次登录验证】(15分钟)核心知识点:while循环与break的综合应用循环次数控制选择结构与循环结构的嵌套教学活动:思路讲解(5分钟):教师讲解【任务2-3】的实现思路:用while控制尝试次数,用if-elif-else判断登录状态,成功则break。调试与运行(10分钟):学生独立输入并调试文档中给出的任务代码。鼓励学生尝试修改允许的错误次数(如从3次改为5次),并观察运行结果。教学方法:思路引导法、调试练习法模块十九:【AI辅助:使用通义灵码注释代码】(15分钟)核心知识点:通义灵码等AI编程助手的安装与基本使用使用AI工具为代码添加注释或解释合理利用AI工具辅助学习教学活动:演示(8分钟):教师按照文档“AI实验室”部分,现场演示如何使用通义灵码的/comment和/explain功能,为一段复杂的循环代码(如求PI近似值)添加注释和解释。体验(7分钟):学生在自己电脑上操作,选择本单元自己编写的一段代码,使用通义灵码(或类似工具)生成注释,并阅读AI提供的解释。教学方法:演示法、体验式学习法时间分配表环节时长占比模块一:代码规范与命名规则20分钟5.6%模块二:变量赋值与数据类型20分钟5.6%模块三:数字类型与类型转换15分钟4.2%模块四:字符串的创建与转义15分钟4.2%模块五:字符串操作:拼接、索引与切片20分钟5.6%模块六:字符串的常用方法20分钟5.6%模块七:字符串格式化输出15分钟4.2%模块八:运算符与表达式(上)20分钟5.6%模块九:运算符与表达式(下)15分钟4.2%模块十:条件表达式与优先级15分钟4.2%模块十一:选择结构:if与if-else20分钟5.6%模块十二:选择结构:多分支与嵌套20分钟5.6%模块十三:循环结构:while循环20分钟5.6%模块十四:循环结构:for循环与range()20分钟5.6%模块十五:循环控制:break与continue15分钟4.2%模块十六:综合任务:存储与显示商品数据20分钟5.6%模块十七:综合任务:实现用户注册逻辑15分钟4.2%模块十八:综合任务:多次登录验证15分钟4.2%模块十九:AI辅助:使用通义灵码注释代码15分钟4.2%总计360分钟100%单元3:容器数据类型一、课程信息课时:12课时(理论6+实践6)二、学习目标【记忆】学生能够准确说出列表、元组、字典、集合四种容器数据类型的核心特点(有序/无序、可变/不可变、元素唯一性要求),在课堂快速问答中正确率达到95%以上。【理解】学生能够解释列表推导式和字典推导式的工作原理,说明不同数据结构(如列表vs字典)在相同操作(如查找)下的效率差异,并阐述正则表达式中常见元字符(如\d,
^,
$,
*,
+,
?)的含义。【应用】学生能够独立创建、操作(增删改查)和遍历列表、元组、字典和集合,编写程序解决数据存储与处理问题,代码语法正确且运行结果符合预期。【应用】学生能够使用正则表达式结合re模块,完成字符串的模式匹配、查找、替换和验证任务,在“用户注册信息验证”等具体场景中实现格式校验。【分析】学生能够分析给定代码片段,识别其使用的数据结构是否合理,并能根据“文创宝盒”系统不同模块(如商品展示、库存管理、用户验证)的业务需求,提出并论证最佳的数据结构选择方案。【创造】学生能够综合运用列表、元组、字典、集合和正则表达式,独立设计、编码并调试一个结构化的“文创宝盒”系统交互原型,涵盖商品信息管理、优惠活动配置和用户注册登录等核心功能。三、内容模块模块一:【引子:为何需要容器数据类型?】(20分钟)核心知识点:简单变量存储单一数据的局限性“文创宝盒”系统中需要存储的复杂数据(如一件商品包含名称、价格、库存等)容器数据类型的概念与分类(列表、元组、字典、集合)教学活动:讲授(10分钟):通过“一件商品有多个属性”的实际问题,引出需要一种能存储“一系列”或“一组”数据的方式,介绍四种容器数据类型的基本定位。互动(5分钟):学生分组,列举“文创宝盒”系统中除商品外,还有哪些数据适合用容器存储?(如:用户列表、购物车商品、优惠券集合等)。练习(5分钟):学生写出使用单一变量表示一个学生信息(学号、姓名、成绩)的困难,并思考如何改进。教学方法:问题导入法、头脑风暴法模块二:【列表的创建与核心特性】(20分钟)核心知识点:列表的创建:方括号[]、list()函数、list(range())列表的特性:有序、可变、元素可重复、可包含不同类型空列表的创建教学活动:讲授(12分钟):讲解列表的多种创建方式。通过list(range(5))演示生成数字序列。强调列表的有序性和可变性,通过修改列表元素值进行演示。演示(4分钟):教师创建一个包含不同类型元素(如[‘钢笔‘,15.8,True])的列表,并展示修改其中第二个元素的操作。练习(4分钟):学生创建两个列表:一个包含三种文具名称,另一个使用list(range(10,0,-2))创建倒序偶数列表。教学方法:讲授法、演示法、实操验证法模块三:【访问列表元素:索引与切片】(20分钟)核心知识点:索引访问:正向索引(从0开始)、负向索引(从-1开始)切片操作:list[start:stop:step],含头不含尾,参数省略规则遍历列表:for循环遍历、while循环配合索引(了解)教学活动:讲授(12分钟):详细讲解索引和切片的原理,通过图表展示正负索引对应关系。演示各种切片操作,特别是步长为负时的反向切片。互动(5分钟):给定列表[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘],学生快速口答:[1:4]、[-3:]、[::2]、[::-1]的结果。练习(3分钟):学生编写代码,使用for循环遍历并打印自己创建的文具列表。教学方法:图示法、快速问答法、循环遍历练习模块四:【操作列表元素(上):添加与删除】(20分钟)核心知识点:添加元素:末尾追加append()、合并列表extend()、指定位置插入insert()删除元素:按索引删除del、pop();按值删除remove();清空clear()方法的选择与区别教学活动:讲授(12分钟):结合“向优惠活动列表中添加新活动”的案例,讲解三种添加方法。通过“管理无效活动”案例,讲解四种删除方法,重点对比pop()与remove()。演示(4分钟):教师演示remove()只删除第一个匹配项,以及pop()不指定索引时删除最后一个元素。练习(4分钟):学生对一个已有列表进行练习:在末尾添加一个元素,在开头插入一个元素,然后删除第二个元素和最后一个元素。教学方法:案例对比教学法、演示法、步骤练习法模块五:【操作列表元素(下):连接、重复与排序】(20分钟)核心知识点:列表的连接(+)与重复(*)列表排序:原地修改的sort()方法(reverse参数)、生成新列表的sorted()函数sort()与sorted()的核心区别教学活动:讲授(12分钟):讲解+和*的操作。重点讲解列表排序,通过例子说明sort()改变原列表,sorted()返回新列表。互动(5分钟):学生讨论:如果要对一个列表降序排列,有哪些方法?(sort(reverse=True)或先sort()再reverse())。练习(3分钟):学生创建一个无序的数字列表,分别使用sort()和sorted()进行排序并打印,观察原列表是否改变。教学方法:讲授法、讨论法、对比验证法模块六:【列表推导式:高效创建与转换】(20分钟)核心知识点:列表推导式基本语法:[表达式for变量in可迭代对象]带条件过滤的列表推导式:[表达式for变量in可迭代对象if条件]条件表达式在推导式中的应用:[表达式1if条件else表达式2for...]教学活动:讲授(12分钟):对比传统的for循环创建列表与列表推导式,展示其简洁性。逐步拆解【例3-1】到【例3-3】,讲解语法演变。演示(4分钟):教师演示一个复杂些的例子:将字符串列表[‘10‘,‘20‘,‘abc‘,‘30‘]转换为整数列表,无法转换的设为0。(使用try...except或条件判断)。练习(4分钟):学生使用列表推导式,生成一个1-20之间所有能被3整除的数的平方的列表。教学方法:对比教学法、案例拆解法、举一反三练习模块七:【元组:不可变的轻量级序列】(20分钟)核心知识点:元组的创建:圆括号()、tuple()函数、单元素元组(必须加逗号)元组的访问:索引、切片、遍历(同列表)元组的核心特性与用途:不可变性、作为字典的键、固定数据集合教学活动:讲授(12分钟):通过“优惠活动类型固定不变”强调不可变性的意义。讲解创建方法,特别强调单元素元组易错点。讲解访问方式。演示(4分钟):教师演示尝试修改元组元素会引发TypeError,并演示如何通过“元组->列表->修改->元组”的迂回方式实现“修改”。练习(4分钟):学生创建一个包含星期几的元组,练习访问第一个和最后一个元素,并尝试修改(观察错误)。教学方法:特性强调法、纠错演示法、理解性练习模块八:【列表vs元组:深入对比与选择】(20分钟)核心知识点:可变性差异导致的性能与安全性区别使用场景对比:列表用于动态数据集合,元组用于固定数据、字典键、函数多返回值序列的通用操作(len(),
+,
*,
in,
max(),
min()等)教学活动:讲授(10分钟):系统对比两者在可变性、性能、用途、语法上的区别。通过表格总结。介绍序列的通用操作。互动(5分钟):学生分组讨论:在“文创宝盒”系统中,用户的“收货地址”(省、市、区、详细地址)应该用列表还是元组存储?为什么?练习(5分钟):学生分别用列表和元组表示一个坐标点(x,y),然后尝试修改y坐标,体验差异。教学方法:对比表格法、场景讨论法、体验式学习模块九:【综合任务:展示商品优惠信息】(25分钟)核心知识点:使用元组PROMOTION_TYPES存储固定的活动类型映射使用列表promotions动态存储管理员配置的活动详情字符串分割split()、列表推导式清洗、join()连接的综合应用教学活动:代码走读与分析(10分钟):教师带领学生逐行阅读并解释任务3-1的已实现代码。重点分析:1)元组嵌套的结构;2)商品编号输入的验证与清洗流程。分组调试与运行(10分钟):学生分组,在开发环境中输入并运行该段代码,模拟管理员配置一次优惠活动,观察输出。思考与优化(5分钟):引导学生思考:如何优化商品编号的存储结构?(提示:用集合或列表存储ID列表,而非拼接的字符串)。教学方法:代码走读法、协作实践法、启发式提问模块十:【字典:键值对的强大映射】(20分钟)核心知识点:字典的概念:键(Key)值(Value)对映射,键唯一且不可变字典的创建:花括号{}直接创建、dict()函数创建访问字典的值:dict[key](可能引发KeyError)、安全的dict.get(key,default)方法教学活动:讲授(12分钟):以“商品编号快速查询商品详情”为引,讲解字典的映射思想。演示两种创建方式。对比两种访问方式,强调get()的容错性。演示(4分钟):教师演示KeyError的产生,以及如何使用get()避免,并设置自定义默认值(如‘未知’)。练习(4分钟):学生创建一个字典,存储自己的姓名、年龄和爱好,并分别用两种方式获取“年龄”和“不存在的键(如‘身高’)”。教学方法:映射思想导入法、容错性教学、个人数据实操模块十一:【操作字典(上):增、改、删】(20分钟)核心知识点:添加/修改单个键值对:dict[key]=value批量更新:update()方法合并另一个字典删除键值对:pop(key,default)、del、随机删除popitem()、清空clear()成员测试:in运算符检查键是否存在教学活动:讲授(12分钟):讲解增、改、删的各类方法。重点讲解pop(key,default)的安全删除,以及update()的合并功能。演示(4分钟):教师演示update()如何用新字典覆盖旧字典中已有的键,以及popitem()的随机删除特性。练习(4分钟):学生在自己的个人字典中添加“城市”信息,修改“年龄”,然后尝试删除“爱好”,并使用in检查“城市”是否存在。教学方法:方法枚举法、特性演示法、连贯操作练习模块十二:【操作字典(下):遍历与常用方法】(20分钟)核心知识点:遍历所有键:keys()方法遍历所有值:values()方法遍历所有键值对:items()方法(常用)获取字典长度:len(dict)zip()函数将多个列表“压缩”为可迭代的键值对元组序列教学活动:讲授(12分钟):讲解三种遍历方法,强调items()在同时需要键和值时的便利性。介绍zip()函数的妙用,用于从两个列表快速构建字典。演示(4分钟):教师演示使用items()遍历商品字典并格式化打印。演示使用zip()将[‘name‘,‘price‘]和[‘书签‘,10]快速合成字典。练习(4分钟):学生使用forkey,valueindict.items():的格式遍历自己的个人字典并打印。教学方法:遍历方法对比、工具函数引入、格式化输出练习模块十三:【字典推导式与嵌套字典】(20分钟)核心知识点:字典推导式语法:{键表达式:值表达式for...in...}字典推导式的应用:快速生成字典、交换键值、过滤数据嵌套字典:字典的值可以是另一个字典(如商品详情)教学活动:讲授(12分钟):对比列表推导式引入字典推导式。讲解其语法,演示交换字典键值的经典例子。讲解嵌套字典的结构,如{‘商品ID‘:{‘name‘:...,‘price‘:...}}。互动(5分钟):给出一个字典{‘a‘:1,‘b‘:2},学生思考如何用推导式得到{1:‘a‘,2:‘b‘}。练习(3分钟):学生使用字典推导式,将一个数字列表[1,2,3]转换为{1:1,2:4,3:9}(键为数字,值为平方)。教学方法:迁移教学法、思维转换练习、数据结构设计模块十四:【综合任务:入库商品(字典实战)】(25分钟)核心知识点:嵌套字典设计存储所有商品:products={pid:{‘name‘:…,‘price‘:…,‘stock‘:…}}基于键的快速存在性检查:ifpidinproducts:嵌套字典的访问与修改:products[pid][‘stock‘]+=num使用items()遍历展示所有商品教学活动:架构与思路讲解(8分钟):教师分析任务3-2的需求,讲解为何采用嵌套字典是最佳选择(基于键的O(1)查找效率)。分析代码的三个功能块:添加、更新库存、展示。关键代码精讲(7分钟):教师精讲“检查商品是否存在”和“更新库存”两个核心代码段,解释嵌套访问的语法。独立实现与测试(10分钟):学生根据文档代码框架和讲解,独立完成整个程序的编码,并测试添加新商品、更新已有商品库存、展示所有商品三个功能。教学方法:架构分析法、关键代码精讲、独立开发与调试模块十五:【集合:无序的唯一性容器】(20分钟)核心知识点:集合的特性:无序、元素唯一、元素必须不可变集合的创建:花括号{}(非空)、set()函数(可创建空集合)添加元素:add()单个元素、update()多个元素删除元素:remove()(严格)、discard()(安全)、pop()随机、clear()清空教学活动:讲授(12分钟):通过“已注册用户名不能重复”的需求引入集合。讲解创建方式,强调空集必须用set()。演示添加和删除操作,对比remove()和discard()的区别。演示(4分钟):教师演示将一个含重复项的列表转换为集合,自动去重。演示尝试向集合添加列表(可变对象)会报错。练习(4分钟):学生创建一个空集合,依次添加几个数字(包括重复的),观察结果,然后尝试删除一个存在的和一个不存在的元素。教学方法:需求导入法、去重演示法、安全操作对比模块十六:【集合的运算与应用】(20分钟)核心知识点:集合的数学运算:并集|、交集&、差集-、对称差集^集合的关系判断:子集<=、真子集<、超集>=、真超集>集合的常用方法:len()、copy()、in运算符教学活动:讲授(12分钟):使用文氏图直观讲解四种基本运算的含义和应用场景(如求共同兴趣、独有兴趣)。讲解关系判断的方法。互动(5分钟):给定A={1,2,3,4},
B={3,4,5,6},学生口算A|B,
A&B,
A-B,
A^B,并判断A<=B的真假。练习(3分钟):学生编程验证上述口算结果,并输出A和B的长度。教学方法:图示法、心算口答法、编程验证法模块十七:【正则表达式:模式匹配利器】(20分钟)核心知识点:正则表达式的概念与典型应用场景(格式验证、文本提取、内容替换)常见元字符:.、^、$、*、+、?、{m,n}常用字符集:\d、\w、\s及其否定形式\D、\W、\S使用原始字符串r‘‘定义正则模式教学活动:讲授(12分钟):通过“验证邮箱格式”、“提取手机号”等例子引入正则。系统讲解元字符和字符集,每个搭配简单例子说明(如r‘\d{3}‘匹配三个数字)。互动(5分钟):教师给出几个字符串(‘a‘‘ab‘‘abb‘‘ac‘),学生根据模式r‘ab?c‘判断哪些能被匹配。练习(3分钟):学生尝试写出匹配“以字母开头,后跟3位数字”的正则表达式。教学方法:场景导入法、元字符系统讲解、模式匹配判断模块十八:【re模块:应用正则表达式】(20分钟)核心知识点:导入re模块核心方法:findall()返回所有匹配列表、search()返回首个匹配对象、match()仅匹配字符串开头从匹配对象Match中提取内容:group()方法替换方法:sub(新内容,原字符串)教学活动:讲授(12分钟):对比讲解findall、search、match三者的区别。演示如何使用group()获取匹配到的具体文本。演示sub()进行替换。演示(4分钟):教师演示在字符串‘电话123,电话456’中使用findall找所有数字,用search找第一个数字,并用sub将所有数字替换为‘[NUMBER]‘。练习(4分钟):学生编写代码,使用findall提取字符串‘我的成绩是85和92’中的所有数字。教学方法:方法对比法、功能演示法、信息提取练习模块十九:【综合任务:验证用户注册信息】(25分钟)核心知识点:使用集合registered_usernames存储已注册用户名以实现高效查重使用pile()编译正则表达式对象以提高效率正则表达式验证格式:r‘^[a-zA-Z]{4,20}$‘(用户名),
r‘^(?!.*[\u4e00-\u9fa5\s]).{5,15}$‘(密码)程序流程控制:while循环菜单、多层if-elif-else判断教学活动:代码逻辑深度剖析(10分钟):教师带领学生分析任务3-3的完整代码,重点讲解:1)集合的初始化与in操作查重;2)两个复杂正则表达式的构建逻辑(特别是密码正则的否定前瞻(?!...));3)主循环和分支结构。分组代码审查(10分钟):学生分组,互相审查对方输入的代码,并模拟测试各种情况(用户名已存在、格式错误、密码格式错误、注册成功)。功能增强讨论(5分钟):引导学生讨论:如何增加“密码需包含数字和字母”的强度验证?尝试修改正则表达式。教学方法:逻辑剖析法、同伴审查法、开放式讨论模块二十:【AI辅助学习:深化理解与方案设计】(20分钟)核心知识点:利用AI编程助手(如通义灵码)辅助理解复杂概念、获取代码示例学习如何向AI提出清晰、具体的问题以获得高质量回答分析AI给出的不同数据结构方案(如购物车实现)的优劣教学活动:演示与提问(15分钟):教师按照文档演示:1)向通义灵码提问“列表、字典、集合分别适用于什么场景?”;2)使用/explain命令解释一段嵌套字典推导式;3)提问“用Python实现购物车,哪种数据结构好?”。自主探索与分享(5分钟):学生选择一个本单元内自己感兴趣或有疑问的知识点,向AI提问,并简要分享AI给出的答案或启示。教学方法:工具演示法、探究式学习、分享交流模块二十一:【单元知识综合梳理】(20分钟)核心知识点:四种容器数据类型(列表、元组、字典、集合)的核心特性对比总览根据数据访问模式(顺序、按键、需唯一性、需关系运算)选择数据结构正则表达式在数据验证与清洗中的核心作用总结教学活动:总结归纳(10分钟):教师带领学生以思维导图或表格形式,从有序性、可变性、元素要求、主要操作、应用场景等方面系统梳理四种数据类型。场景决策讨论(5分钟):给出多个“文创宝盒”系统场景(如:记录用户浏览历史、存储商品分类及其子类、管理有效的优惠券码),学生分组讨论应选择哪种数据结构并陈述理由。Q&A答疑(5分钟):教师集中回答学生在整个单元学习中遗留的共性问题。教学方法:思维导图法、场景决策法、集中答疑模块二十二:【综合挑战与单元测验】(25分钟)核心知识点:本单元所有知识点的综合应用阅读、分析和调试包含多种数据结构的复杂代码解决实际问题的方案设计与简单实现教学活动:综合应用题实战(15分钟):学生独立完成一道综合应用题,例如:“给定一段商品描述文本,使用正则表达式提取所有价格(如¥15.8),并存储到列表中,然后计算平均价格”。单元小测(10分钟):进行一个简短的闭卷测验,包含10道左右选择题/填空题,覆盖四种数据类型的核心特性和基本操作,以及正则表达式基础。教学方法:综合任务驱动法、限时测验法时间分配表环节时长占比模块一:引子:为何需要容器数据类型?20分钟3.7%模块二:列表的创建与核心特性20分钟3.7%模块三:访问列表元素:索引与切片20分钟3.7%模块四:操作列表元素(上):添加与删除20分钟3.7%模块五:操作列表元素(下):连接、重复与排序20分钟3.7%模块六:列表推导式:高效创建与转换20分钟3.7%模块七:元组:不可变的轻量级序列20分钟3.7%模块八:列表vs元组:深入对比与选择20分钟3.7%模块九:综合任务:展示商品优惠信息25分钟4.6%模块十:字典:键值对的强大映射20分钟3.7%模块十一:操作字典(上):增、改、删20分钟3.7%模块十二:操作字典(下):遍历与常用方法20分钟3.7%模块十三:字典推导式与嵌套字典20分钟3.7%模块十四:综合任务:入库商品(字典实战)25分钟4.6%模块十五:集合:无序的唯一性容器20分钟3.7%模块十六:集合的运算与应用20分钟3.7%模块十七:正则表达式:模式匹配利器20分钟3.7%模块十八:re模块:应用正则表达式20分钟3.7%模块十九:综合任务:验证用户注册信息25分钟4.6%模块二十:AI辅助学习:深化理解与方案设计20分钟3.7%模块二十一:单元知识综合梳理20分钟3.7%模块二十二:综合挑战与单元测验25分钟4.6%总计480分钟88.9%课时缓冲、复习与机动60分钟11.1%课程总时长540分钟100%单元4:函数和模块化编程一、课程信息课时:8课时(理论4+实践4)二、学习目标【记忆】学生能够准确说出Python中定义函数的关键字(def)、四种基本参数类型(位置、默认值、关键字、可变)和全局变量声明的关键字(global),在课堂快速问答中正确率达到90%以上。【理解】学生能够解释局部变量与全局变量的作用域差异,并用自己的话描述函数参数传递(特别是默认值参数和可变参数)的基本机制。【应用】学生能够根据“文创宝盒”系统功能需求,正确定义、调用函数,并使用参数与返回值实现数据传递,编写出结构清晰、可复用的功能模块。【应用】学生能够使用迭代器和生成器(yield)处理商品列表、购物车数据等序列,编写出可逐个产生结果、节省内存的代码。【分析】学生能够分析比较递归函数与循环、匿名函数lambda与普通函数在特定场景下的优劣与适用性,并能为给定问题选择合适的函数形式。【创造】学生能够综合运用函数封装、模块组织思想,将“商品管理”和“购物车”功能重构为独立的模块,并在主程序中通过导入调用,构建出结构化的程序原型。三、内容模块模块一:【引子:从代码重复到函数复用】(20分钟)核心知识点:编程中代码重复带来的问题(维护困难、易出错)函数的核心价值:代码复用、逻辑封装、提高可读性与可维护性函数在“文创宝盒”系统多人协同开发中的作用教学活动:讲授(10分钟):对比展示两段重复显示商品信息的代码,引出函数概念。阐述函数如何像“积木”一样,让复杂系统通过组装功能模块构建。互动(5分钟):学生分组讨论,在之前学习过的“文创宝盒”代码中,哪些部分明显存在重复,可以提取为函数?(如:输入验证、价格计算)。练习(5分钟):学生写出一个自己认为可以封装成函数的小功能描述(如“欢迎新用户”)。教学方法:对比分析法、头脑风暴法、概念预演模块二:【函数的定义与调用】(20分钟)核心知识点:定义函数:def关键字、函数名、圆括号、冒号、函数体(缩进)调用函数:函数名加圆括号()无参数函数的定义与调用教学活动:讲授(10分钟):讲解函数定义的语法结构,强调def和缩进。通过【例4-4】演示无参数函数的定义与调用过程。演示(4分钟):教师现场编写一个print_welcome()函数,在屏幕上打印欢迎语,并多次调用它。练习(6分钟):学生独立编写一个无参数的show_menu()函数,打印一个简单的系统菜单(如:1.登录2.注册3.退出),并调用一次。教学方法:语法精讲法、现场编码演示、模仿练习模块三:【函数的参数与返回值】(20分钟)核心知识点:函数参数:形参与实参的概念使用return语句返回值接收函数返回值(赋值给变量)教学活动:讲授(10分钟):通过“给函数输入数据(参数)”和“从函数获得结果(返回值)”的比喻,讲解参数和返回值的概念。演示【例4-2】和【例4-3】,对比有返回值和无返回值的函数。互动(5分钟):教师提问:print(greet(‘张三‘))和greet(‘张三‘)在结果上有何不同?引导学生理解print函数与return语句的区别。练习(5分钟):学生编写一个calculate_area(radius)函数,接收半径参数,返回圆面积。调用该函数计算半径为5的圆面积并打印。教学方法:比喻教学法、对比提问法、数学计算迁移模块四:【变量的作用域:局部与全局】(20分钟)核心知识点:局部变量:函数内部定义,仅函数内可用全局变量:函数外部定义,整个文件可用在函数内修改全局变量:global关键字教学活动:讲授(12分钟):通过图示讲解局部与全局变量的“可见范围”。使用【例4-5】和【例4-6】演示局部变量的独立性,以及使用global修改全局变量的方法。强调滥用全局变量的风险。演示(4分钟):教师演示一个错误案例:在函数内试图修改未用global声明的全局变量,结果创建了同名局部变量,外部变量不变。练习(4分钟):学生分析一段给定的代码,指出其中的变量哪些是全局变量,哪些是局部变量,并预测输出结果。教学方法:图示法、正误案例对比法、代码分析练习模块五:【综合任务一:封装商品信息展示函数】(25分钟)核心知识点:将一段功能明确的代码块封装成函数确定函数的参数(如products字典)和返回值(本例为None,执行打印操作)函数内部的逻辑实现(遍历字典、格式化输出)教学活动:代码重构演示(10分钟):教师展示任务4-1中分散的商品信息打印代码,引导学生思考将其封装为display_products(products)函数的好处。现场演示封装过程。函数接口分析(5分钟):师生共同分析封装后的函数:它需要什么输入?(整个商品字典)。它产生什么输出?(屏幕打印)。它改变了什么?(没有改变字典,只是读取)。独立封装练习(10分钟):学生将一段已有的“遍历并打印学生成绩列表”的代码,封装成display_scores(score_list)函数。教学方法:重构演示法、接口分析法、迁移封装练习模块六:【函数参数设置(上):位置、默认值、关键字】(20分钟)核心知识点:位置参数:按顺序传递默认值参数:定义时赋值,调用时可省略关键字参数:调用时按参数名指定,可打乱顺序教学活动:讲授(12分钟):系统讲解三种参数的定义与调用方式。通过【例4-8】、【例4-9】、【例4-10】逐一演示。强调默认值参数必须定义在非默认值参数之后。互动(5分钟):给出函数定义defintroduce(name,city=‘北京‘,age):,让学生找出错误并修正。练习(3分钟):学生编写一个greet_user(name,greeting=‘您好‘)函数,使用默认参数和关键字参数两种方式调用。教学方法:系统讲解法、纠错互动法、多方式调用练习模块七:【函数参数设置(下):可变参数与参数解包】(20分钟)核心知识点:可变位置参数:*args,接收任意数量的位置参数,打包为元组可变关键字参数:**kwargs,接收任意数量的关键字参数,打包为字典参数解包:调用时使用*和**将列表/字典拆解为参数教学活动:讲授(12分钟):讲解*args和**kwargs的用途,演示【例4-11】到【例4-14】。讲解调用时使用*list和**dict进行解包的妙用。演示(4分钟):教师演示一个实用例子:print_data(*[‘商品A‘,19.9,‘特价‘]),将列表解包传给print函数。练习(4分钟):学生编写一个print_order_info(**order_dict)函数,接收一个包含order_id,
total_price等键的字典,并格式化打印订单信息。教学方法:概念引入法、实用案例演示、字典解包应用模块八:【综合任务二:实现购物车添加函数】(25分钟)核心知识点:设计接收多个参数的函数:add_to_cart(product_id,quantity)函数内部的复杂逻辑:存在性检查、库存判断、数据修改(购物车和商品库存)函数对全局数据结构的副作用(修改了cart和products)教学活动:业务逻辑剖析(10分钟):教师带领学生分析任务4-2的需求,梳理“添加商品到购物车”的完整业务逻辑步骤(检查商品、检查库存、更新购物车、扣减库存)。关键代码精讲(10分钟):逐行讲解任务中add_to_cart函数的实现,重点解释嵌套字典的访问(products[pid][‘stock‘])和条件判断的嵌套。模拟测试(5分钟):学生扮演测试员,给定不同的product_id和quantity,口头描述函数应产生的行为或输出。教学方法:业务流程分析法、代码逐行精讲、角色扮演测试模块九:【迭代器:可迭代对象与遍历原理】(20分钟)核心知识点:可迭代对象(Iterable):列表、元组、字典、集合、字符串等迭代器(Iterator):具有__next__()方法的对象iter()函数与next()函数的使用for循环的本质:自动调用iter()和next()教学活动:讲授(12分钟):解释foriteminmy_list:背后的机制。通过【例4-18】演示手动使用iter()和next()遍历列表,并捕获StopIteration异常。演示(4分钟):教师使用iter()和next()手动遍历一个字符串,让学生直观感受“迭代”是一步一步进行的。练习(4分钟):学生对一个元组(1,2,3),手动使用iter()获取迭代器,并使用两次next()函数获取前两个元素。教学方法:原理揭示法、手动操作演示、动手体验模块十:【生成器:惰性计算与yield】(20分钟)核心知识点:生成器(Generator):特殊的迭代器,使用yield关键字定义生成器函数:包含yield语句的函数,调用时返回生成器对象生成器的惰性求值特性:节省内存,适用于大数据流或无限序列生成器表达式:(xforxinrange(n))教学活动:讲授(12分钟):对比列表推导式(立即生成所有数据)和生成器(按需yield数据)。通过【例4-19】的斐波那契数列生成器,讲解yield如何暂停和恢复函数执行。演示(4分钟):教师对比[x*xforxinrange(1000000)]和(x*xforxinrange(1000000))的内存占用(通过任务管理器或简单估算),强调生成器的内存优势。练习(4分钟):学生将列表推导式[iforiinrange(10)ifi%2==0]改写为等价的生成器表达式。教学方法:对比教学法、性能直观演示、语法转换练习模块十一:【综合任务三:使用生成器优化购物车展示】(25分钟)核心知识点:定义生成器函数:cart_generator(cart,products)在生成器函数中使用yield逐个返回格式化后的商品信息字符串使用for循环迭代生成器,实现“惰性”展示使用生成器计算总价:sum(cart_total_generator(...))教学活动:代码对比与优化动机(5分钟):教师展示一次性生成所有购物车信息列表的代码,与使用生成器逐个yield的代码对比,讨论在购物车商品极多时的性能差异。生成器函数精讲(10分钟):详细讲解任务4-3中的cart_generator函数,说明yield如何将每条商品信息作为一次迭代结果返回。解释sum()函数如何与生成器配合工作。改写练习(10分钟):学生将之前“遍历并打印学生成绩列表”的函数,改写为一个生成器函数score_generator(scores),逐个yield每个学生的成绩信息。教学方法:性能对比启发、生成器应用精讲、功能迁移改写模块十二:【特殊函数(上):递归函数】(20分钟)核心知识点:递归的定义:函数直接或间接调用自身递归的两个关键要素:基线条件(递归终止条件)、递归条件(问题分解)递归的应用:阶乘、斐波那契数列、目录树遍历教学活动:讲授(12分钟):以计算阶乘n!为例,用图示分解5!=5*4!的过程,清晰展示递归的“递去”与“归来”。讲解【例4-21】的树形结构遍历。演示(4分钟):教师现场编写一个递归函数list_files(dir_path)的伪代码,描述如何遍历目录及其所有子目录中的文件。练习(4分钟):学生尝试理解给定的递归函数sum_list(lst)(计算列表所有元素之和),并画出调用sum_list([1,2,3])的递归过程草图。教学方法:图示分解法、伪代码演示、过程理解练习模块十三:【特殊函数(下):匿名函数(lambda)】(20分钟)核心知识点:匿名函数lambda的语法:lambda参数:表达式lambda函数的特性:单行表达式、没有函数名、常用作高阶函数的参数高阶函数:map(),
filter(),
sorted(key=)教学活动:讲授(10分钟):讲解lambda的简洁性及使用场景。通过【例4-23】到【例4-25】演示lambda在map(映射)和filter(过滤)中的应用。互动(5分钟):教师给出列表[‘apple‘,‘banana‘,‘cherry‘],让学生思考如何使用sorted(...,key=lambdax:len(x))按字符串长度排序。练习(5分钟):学生使用map和lambda,将一个商品价格列表[32,99,299]中的每个价格打8折,生成新列表。教学方法:场景限定法、高阶函数结合演示、数据处理练习模块十四:【模块化编程(上):模块的创建与导入】(20分钟)核心知识点:模块的概念:一个.py文件就是一个模块创建自定义模块:将相关函数放入一个文件导入模块:importmodule_name使用模块中的函数:module_name.function_name()from...import...语法教学活动:讲授(10分钟):讲解模块化如何将大型项目分解为多个文件,便于团队协作和维护。演示创建my_module.py和main.py的完整过程(【例4-6.1】)。演示(5分钟):教师在VSCode中现场操作:新建两个文件,在utils.py中定义一个calculate_discount(price,rate)函数,在main.py中导入并调用。练习(5分钟):学生将之前写的calculate_area函数和display_scores函数移动到一个新建的my_tools.py文件中,并在另一个文件中导入使用。教学方法:项目架构讲解、现场操作演示、跨文件迁移练习模块十五:【模块化编程(下):标准库与第三方库】(20分钟)核心知识点:Python标准库:math,
random,
datetime,
os等使用import导入标准库模块第三方库的概念与安装:pipinstallpackage_name使用国内镜像源加速安装教学活动:讲授(10分钟):介绍常用标准库模块的用途。演示使用datetime获取当前时间,使用random生成随机数。简述pip安装第三方库(如requests)的命令。演示(5分钟):教师演示如何使用pipinstall-i/simplerequests从清华镜像安装库。探索(5分钟):学生查阅math模块的文档(或使用VSCode的提示),尝试使用math.ceil()(向上取整)和math.floor()(向下取整)函数。教学方法:库功能介绍法、工具使用演示、自主文档探索模块十六:【AI辅助:使用通义灵码生成单元测试】(20分钟)核心知识点:单元测试的概念:验证单个函数或模块的行为是否符合预期利用AI编程助手自动生成测试用例阅读和理解生成的测试代码教学活动:演示与讲解(15分钟):教师按照文档“AI实验室”部分,现场演示为add_to_cart函数生成单元测试。展示AI生成的测试代码,解释assert断言语句的作用(验证结果是否与预期相等)。观察与讨论(5分钟):学生观察生成的测试代码,讨论测试用例覆盖了哪些场景(如:正常添加、库存不足、商品不存在、数量为负等)。教学方法:工具赋能演示、测试代码解读、测试场景分析模块十七:【单元知识综合梳理】(20分钟)核心知识点:函数的核心价值与分类(自定义、内置、库函数)函数定义的完整要素:名、参、体、返回值参数传递的四种方式总结迭代器、生成器、递归、匿名函数的适用场景对比模块化编程的实践路径教学活动:结构化总结(10分钟):教师使用思维导图,带领学生系统回顾本单元所有核心概念,建立知识网络,明确各知识点间的关联。场景决策讨论(5分钟):给出不同场景(如:遍历大量日志文件、实现一个快速排序、为数据清洗定义简单规则),学生分组讨论应优先选择哪种函数/技术实现。自由答疑(5分钟):解答学生在整个单元学习过程中积累的个别疑问。教学方法:思维导图法、场景决策法、集中答疑模块十八:【综合挑战与单元测验】(20分钟)核心知识点:本单元所有知识的综合应用能力代码阅读、分析与调试能力解决小型实际问题的设计与实现能力教学活动:综合编程挑战(15分钟):学生独立完成一个小项目:编写一个shopping_cart.py模块,包含add_item,
remove_item,
calculate_total,
display_cart等函数。在main.py中导入该模块并模拟一次购物流程。单元概念小测(5分钟):进行一个简短的线上或纸质测验,包含5-8道选择题/填空题,覆盖函数定义、参数类型、作用域、生成器等核心概念。教学方法:微型项目驱动法、限时概念测验时间分配表环节时长占比模块一:引子:从代码重复到函数复用20分钟5.6%模块二:函数的定义与调用20分钟5.6%模块三:函数的参数与返回值20分钟5.6%模块四:变量的作用域:局部与全局20分钟5.6%模块五:综合任务一:封装商品信息展示函数25分钟6.9%模块六:函数参数设置(上):位置、默认值、关键字20分钟5.6%模块七:函数参数设置(下):可变参数与参数解包20分钟5.6%模块八:综合任务二:实现购物车添加函数25分钟6.9%模块九:迭代器:可迭代对象与遍历原理20分钟5.6%模块十:生成器:惰性计算与yield20分钟5.6%模块十一:综合任务三:使用生成器优化购物车展示25分钟6.9%模块十二:特殊函数(上):递归函数20分钟5.6%模块十三:特殊函数(下):匿名函数(lambda)20分钟5.6%模块十四:模块化编程(上):模块的创建与导入20分钟5.6%模块十五:模块化编程(下):标准库与第三方库20分钟5.6%模块十六:AI辅助:使用通义灵码生成单元测试20分钟5.6%模块十七:单元知识综合梳理20分钟5.6%模块十八:综合挑战与单元测验20分钟5.6%总计360分钟100%单元5:面向对象编程一、课程信息课时:8课时(理论4+实践4)二、学习目标【记忆】学生能够准确说出类与对象的关系、面向对象三大特性(封装、继承、多态)的基本定义,以及类中常见特殊方法(如__init__,
__str__,
__del__)的触发时机,在课堂快速问答中正确率达到90%以上。【理解】学生能够解释实例属性与类属性的区别、self和cls参数的用途、不同方法类型(实例方法、类方法、静态方法)的调用方式与作用差异,并能用自己的话阐述。【应用】学生能够基于"文创宝盒"系统需求,正确定义类、构造对象,并使用@property装饰器实现属性的封装,编写结构清晰的类成员(属性与方法)。【分析】学生能够分析比较继承与多重继承的优缺点,判断特定业务场景(如扩展购物车功能)是否适合使用继承或多态,并能解释原因。【应用】学生能够通过继承创建子类,重写父类方法(如__str__,
calculate_total),并合理使用super()调用父类功能,实现代码复用和功能扩展。【创造】学生能够综合运用面向对象思想(封装、继承、多态),将"文创宝盒"系统的商品展示、购物车、支付等功能模块重构为类与对象的结构化设计,实现灵活、可扩展的交互原型。三、内容模块模块一:【面向对象编程思想初探】(20分钟)核心知识点:面向过程与面向对象编程思想的对比类(Class)与对象(Object)的关系:类是模板,对象是实例面向对象三大特性:封装、继承、多态面向对象编程的优势:代码复用、结构清晰、易于维护和扩展教学活动:讲授(10分钟):通过绘制"正方形"的例子,解释类(正方形的定义)与对象(具体画出的正方形)的关系。对比【例5-25】中面向过程与面向对象两种方式解决"交通工具行驶时间"问题的代码量与可扩展性。互动(5分钟):学生分组讨论,在"文创宝盒"系统中,哪些部分适合用面向对象的方式设计?(如商品、用户、订单、购物车)练习(5分钟):学生写出一个自己认为可以用类来建模的现实世界事物(如"手机"),并列出它可能拥有的属性和方法。教学方法:概念引入法、对比分析法、头脑风暴法模块二:【类的定义与对象创建】(20分钟)核心知识点:类的定义:class关键字、类名、冒号、缩进块空类的定义与pass占位符对象的创建(实例化):对象名=类名()对象的内存分配与初始化过程教学活动:讲授(12分钟):讲解类定义的语法,强调类名的驼峰命名规范。演示创建一个简单的Book空类。通过book=Book()创建对象,解释实例化时Python在内存中开辟空间的过程。演示(4分钟):教师现场使用IDLE或VSCode演示定义Book类并创建两个不同的book1和book2对象,展示它们是独立的。练习(4分钟):学生独立编写一个Product(商品)类的定义,并创建一个product1对象。教学方法:语法精讲法、编码演示法、模仿练习模块三:【构造方法与对象初始化】(20分钟)核心知识点:无参构造方法__init__()的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输血相关循环超负荷临床诊治的专家共识(2026版)
- 护理技术中的移动医疗应用
- 护理新职工:信息技术与护理管理
- 护理专业护理教育与培训
- 福建省福州市2025-2026学年八年级下学期质量抽测生物试卷(有答案)
- 木刻水印雕刻版员安全知识竞赛评优考核试卷含答案
- 聚丁二烯装置操作工岗前生产安全水平考核试卷含答案
- 2026年新科教版高中高一化学上册第三单元氧化还原反应规律应用卷含答案
- 验房师安全文明考核试卷含答案
- 钼铁冶炼工岗前教育考核试卷含答案
- 2026年江苏南京市高三二模高考物理试卷试题(含答案详解)
- 2026四川省成都广定发展集团有限公司招聘3人备考题库(含答案详解)
- 2026四川成都市公共交通集团有限公司招聘投资管理专员岗位备考题库附答案详解(b卷)
- (完整版)旅游学概论期末试题(附答案)
- 2025年电工(中级)实操技能考核试题(附答案)
- 2025年广东省深圳市初二学业水平地理生物会考真题试卷(+答案)
- 2026年公立医院信息科工作人员招聘考试笔试试题(含答案)
- 园林绿养护安全培训内容
- 2026年深圳市创新投资集团有限公司校园招聘考试参考试题及答案解析
- 金属标牌行业现状分析报告
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
评论
0/150
提交评论