《Python程序设计》课程实验教学大纲 一、课程基本信息(黑体/小四) 课程代码:17012003 课程名称:python程序设计 英文名称:Python Programming 实验总学时: 32 适用专业:电子商务本科专业 课程类别:专业课 先修课程:C语言 二、实验教学的总体目的和要求 (一)总体目标 通过本课程的学习,使得学生能够理解Python的编程模式,验证、理解直 至熟练运用课堂所学知识,熟练使用IDL,E、wingeIDE或其他Python开发环境, 熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、 切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计 以及类的设计与使用,熟练使用正则表达式处理字符串,熟练使用Python读写 文本文件与二进制文件,了解Python程序的调试方法,熟练运用Python编写面 向对象程序,同时使学生了解不同领域的Pythor扩展模块基本用法,同时还应培 养学生的代码优化与安全编程意识,培养学生的创新意识、人文素养、科学思维、 严谨求实和工匠精神。 (二)总体要求 1、对学生的要求
《Python 程序设计》课程实验教学大纲 一、课程基本信息(黑体/小四) 课程代码:17012003 课程名称:python 程序设计 英文名称: Python Programming 实验总学时: 32 适用专业:电子商务本科专业 课程类别:专业课 先修课程:C 语言 二、实验教学的总体目的和要求 (一)总体目标 通过本课程的学习,使得学生能够理解 Python 的编程模式,验证、理解直 至熟练运用课堂所学知识,熟练使用 IDLE、wingeIDE 或其他 Python 开发环境, 熟练运用 Python 列表、元组、字典、集合等基本数据类型以及相关列表推导式、 切片等特性来解决实际问题,熟练掌握 Python 分支结构、循环结构、函数设计 以及类的设计与使用,熟练使用正则表达式处理字符串,熟练使用 Python 读写 文本文件与二进制文件,了解 Python 程序的调试方法,熟练运用 Python 编写面 向对象程序,同时使学生了解不同领域的 Python 扩展模块基本用法,同时还应培 养学生的代码优化与安全编程意识, 培养学生的创新意识、人文素养、科学思维、 严谨求实和工匠精神。 (二)总体要求 1、对学生的要求
(1)电子商务本科专业必须先修习c语言等课程。熟练掌握各个实验的 村程和步摩 (2) 学生需提早五分钟进入实验室,入座后启动实验用的计算机。迟到 10分钟者,则该节实验课以旷课处理。 (3) 因故须请假者,必须按学校规定的要求持有效请假条交给任课教师, 事后补交者无效。 (4) 上机有问题请举手,同学间有问题可相互讨论,但不得喧哗。 (5) 试验期间不得做与实验无关的事,不准将食物带入实验室。 (6) 实验结束后须关机,将键盘架及座椅摆放整齐,并将本机台面等处 杂物主动带离实验室。 2、对教师的要求 (1)教师要非常熟悉实验的每一个环节,因材施教,对各个学生实验 中的疑问能快速解决。 (2)教师上实验课时需按时进入实验室,不得无故迟到。 (3)实验课期间,教师要认真指导学生,发现问题及时解决。 (4)认真批改学生的实验报告,并如实填写实验成绩。 (5)严格要求学生遵守操作规程和学生实验守则,对违反并不听劝告 者,教师有权制止其使用计算机,必要时停止其实验。 (6)实验课上不做与实验内容无关的事,不得无故擅离实验室。 3、对实验条件的要求 (1)硬件要求:P4以上微型计算机,内部组成局域网,对外每台机器均连 入Internet互联网。 (2)软件要求: 操作系统:WindowsXP 软件:Anaconda3,Python3.7以上版本 (3)课后实验学时要求: 和课内实验学时按1:1配置(32学时) 三、实验教学内容 实验项目一 Python installation and development environment construction 实验名称:Python installation and development environment construction
(1) 电子商务本科专业必须先修习 c 语言等课程。熟练掌握各个实验的 过程和步骤 (2) 学生需提早五分钟进入实验室,入座后启动实验用的计算机。迟到 10 分钟者,则该节实验课以旷课处理。 (3) 因故须请假者,必须按学校规定的要求持有效请假条交给任课教师, 事后补交者无效。 (4) 上机有问题请举手,同学间有问题可相互讨论,但不得喧哗。 (5) 试验期间不得做与实验无关的事,不准将食物带入实验室。 (6) 实验结束后须关机,将键盘架及座椅摆放整齐,并将本机台面等处 杂物主动带离实验室。 2、对教师的要求 (1) 教师要非常熟悉实验的每一个环节,因材施教,对各个学生实验 中的疑问能快速解决。 (2) 教师上实验课时需按时进入实验室,不得无故迟到。 (3) 实验课期间,教师要认真指导学生,发现问题及时解决。 (4) 认真批改学生的实验报告,并如实填写实验成绩。 (5) 严格要求学生遵守操作规程和学生实验守则,对违反并不听劝告 者,教师有权制止其使用计算机,必要时停止其实验。 (6) 实验课上不做与实验内容无关的事,不得无故擅离实验室。 3、对实验条件的要求 (1) 硬件要求:P4 以上微型计算机,内部组成局域网,对外每台机器均连 入 Internet 互联网。 (2) 软件要求: 操作系统: WindowsXP 软件:Anaconda3,Python3.7 以上版本 (3) 课后实验学时要求: 和课内实验学时按 1:1 配置(32 学时) 三、实验教学内容 实验项目一 Python installation and development environment construction 实验名称:Python installation and development environment construction
实验内容:l、安装Python解释器。 2、安装Python扩展库。 3、安装Anaconda 实验性质:验证型 实验学时:2 实验目的与要求:I、熟练掌握Python解释器安装与基本用法。 2、熟练掌握使用pip命令安装Python扩展库。 3、弄明白什么是“计算思维”和“程序化思维。” 实验条件:Anaconda3,Python3.7以上版本 研究与思考: l.简单说明如何选择正确的Python版本? 2.从中美贸易战引出软件对国力的重要性。 实验项目二Python operators,.built-in functions 实验名称:Python operators,built-in functions 实验内容:1、编写程序,输入任意大的自然数,输出各位数字之和 2、编写程序,输入两个集合setA和setB,分别输出它们的交集 并集和差集setA-setB。 3、编写程序,输入一个自然数,输出它的二进制、八进制、十六进 制表示形式 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、熟练运用Python运算符. 2、熟练运用Python内置函数。 实验条件:Anaconda3,Python3.7以上版本
实验内容:1、安装 Python 解释器。 2、安装 Python 扩展库。 3、安装 Anaconda 实验性质:验证型 实验学时:2 实验目的与要求:1、 熟练掌握 Python 解释器安装与基本用法。 2、 熟练掌握使用 pip 命令安装 Python 扩展库。 3、 弄明白什么是“计算思维”和“程序化思维。” 实验条件:Anaconda3,Python3.7 以上版本 研究与思考: 1. 简单说明如何选择正确的 Python 版本? 2. 从中美贸易战引出软件对国力的重要性。 实验项目二 Python operators, built-in functions 实验名称:Python operators, built-in functions 实验内容:1、编写程序,输入任意大的自然数,输出各位数字之和。 2、编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、 并集和差集 setA-setB。 3、编写程序,输入一个自然数,输出它的二进制、八进制、十六进 制表示形式 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、熟练运用 Python 运算符。 2、熟练运用 Python 内置函数。 实验条件:Anaconda3,Python3.7 以上版本
研究与思考: .为什么说Python采用的是基于值的内存管理模式? 实验项目三Uses Monte Carlo method to calculate the approximate value of PI 实验名称:Uses Monte Carlo method to calculate the approximate value of PI 实验内容:Uses Monte Carlo method to calculate the approximate value of PI 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、理解蒙特·卡罗方法原理。 2、理解for循环本质与工作原理。 3、了解random模块中常用函数。 实验条件:Anaconda:3,Python3.7以上版本 研究与思考:还没有别的方法计算圆周率? 实验项目四Using list to realize filtering method to find prime number 实验名称:Using list to realize filtering method to find prime number 实验内容:编写程序,输入一个大于2的自然数,然后输出小于该数字的所有 素数组成的列表。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、理解筛选法求解素数的原理。 2、理解列表切片操作
研究与思考: 1. 为什么说 Python 采用的是基于值的内存管理模式? 实验项目三 Uses Monte Carlo method to calculate the approximate value of PI 实验名称:Uses Monte Carlo method to calculate the approximate value of PI 实验内容:Uses Monte Carlo method to calculate the approximate value of PI 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、理解蒙特·卡罗方法原理。 2、理解 for 循环本质与工作原理。 3、了解 random 模块中常用函数。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:还没有别的方法计算圆周率? 实验项目四 Using list to realize filtering method to find prime number 实验名称:Using list to realize filtering method to find prime number 实验内容:编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有 素数组成的列表。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、理解筛选法求解素数的原理。 2、理解列表切片操作
3、熟练运用内置函数enumerate0。 4、热练运用内置函数filer0。 5、理解序列解包工作原理。 6、初步了解选择结构和循环结构。 实验条件:Anaconda3,Python3.7以上版本 研究与思考:列表的使用优点和缺点? 实验项目五Using set to realize filtering method to find prime number 实验名称:Using set to realize filtering method to find prime number 实验内容:编写程序,输入一个大于2的自然数,然后输出小于该数字的所有 素数组成的列表。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、理解求解素数的筛选法原理。 2、理解Python集合对象的discard0方法 3、熟练运用列表推导式。 4、理解for循环工作原理。 实验条件:Anaconda3,Python3.7以上版本 研究与思考:集合的使用优点和缺点? 实验项目六the game to catch fox 实验名称:the game to catch fox 实验内容:编写程序,模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸 最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就 抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之 前跳到隔壁洞口里
3、熟练运用内置函数 enumerate()。 4、熟练运用内置函数 filer()。 5、理解序列解包工作原理。 6、初步了解选择结构和循环结构。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:列表的使用优点和缺点? 实验项目五 Using set to realize filtering method to find prime number 实验名称:Using set to realize filtering method to find prime number 实验内容:编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有 素数组成的列表。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、理解求解素数的筛选法原理。 2、理解 Python 集合对象的 discard()方法。 3、熟练运用列表推导式。 4、理解 for 循环工作原理。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:集合的使用优点和缺点? 实验项目六 the game to catch fox 实验名称:the game to catch fox 实验内容:编写程序,模拟抓狐狸小游戏。假设一共有一排 5 个洞口,小狐狸 最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就 抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之 前跳到隔壁洞口里
实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、培养分析问题并对进行建模的能力。 2、熟练使用列表解决实际问题。 3、熟练运用选择结构和循环结构解决实际问题 4、理解带else子句的循环结构执行流程。 5、理解使用异常处理结构约束用户输入的用法。 6、从分支选择算法流程引导学生做一个凡事有条理的人。 实验条件:Anaconda3,Python3.7以上版本 研究与思考: 1.逻辑运算符or如何实现短路求值? 2.循环如何做到优化,如何考虑边界条件? 实验项目七Xiaoming climbs stairs 实验名称:Xiaoming climbs stairs 实验内容:假设一段楼梯共15个台阶,小明一步最多能上3个台阶。编写程序 计算小明上这段楼梯一共有多少种方法。要求给出递归法代码。 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、理解并熟练使用序列解包。 2、理解递归函数工作原理。 3、能够编写递归函数代码解决实际问题。 4、理解Python字典的用法。 实验条件:Anaconda3,Python3.7以上版本 研究与思考:局部变量和全局变量如何影响,举例证明?
实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、培养分析问题并对进行建模的能力。 2、熟练使用列表解决实际问题。 3、熟练运用选择结构和循环结构解决实际问题。 4、理解带 else 子句的循环结构执行流程。 5、理解使用异常处理结构约束用户输入的用法。 6、从分支选择算法流程引导学生做一个凡事有条理的人。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考: 1. 逻辑运算符 or 如何实现短路求值? 2. 循环如何做到优化,如何考虑边界条件? 实验项目七 Xiaoming climbs stairs 实验名称:Xiaoming climbs stairs 实验内容:假设一段楼梯共 15 个台阶,小明一步最多能上 3 个台阶。编写程序 计算小明上这段楼梯一共有多少种方法。要求给出递归法代码。 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、理解并熟练使用序列解包。 2、理解递归函数工作原理。 3、能够编写递归函数代码解决实际问题。 4、理解 Python 字典的用法。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:局部变量和全局变量如何影响,举例证明?
实验项目八Implementation of queue structure with timeout function by custom class 实g验名称:Implementation of queue structure with timeout function by custom class 实验内容:编写程序,实现自定义类,模拟队列结构。要求实现入队、出队以及 修改队列大小和判断队列是否为空、是否为满的功能,同时要求在入队时如果队 列已满则等待指定时间、出队时如果队列已空则等待指定时间等辅助功能。 实验性质:验证型、设计型 实验学时:4 实验目的与要求 1、了解标准库time中time)函数的用法。 2、了解如何定义一个类。 3、理解队列结构的特点。 4、理解入队和出队时超时功能的实现。 实验条件:Anaconda3,Python3:.7以上版本 研究与思考:L.简单解释Python中以下划线开头的变量名特点? 实验项目九Text file operation 实验名称:Text file operation 实验内容:编写一个程序demo.py,要求运行该程序后,生成deo_new.py文件, 其中内容与demo.py一样,只是在每一行的后面加上行号。要求行号以#开始, 并且所有行的#符号垂直对齐。 实验性质:验证型、设计型 实验学时:4 实验目的与要求: l、熟练掌握内置函数open()的用法。 2、熟练运用内置函数1len0、max0、enumerate0。 3、理解字符串方法1just0
实验项目八 Implementation of queue structure with timeout function by custom class 实验名称:Implementation of queue structure with timeout function by custom class 实验内容:编写程序,实现自定义类,模拟队列结构。要求实现入队、出队以及 修改队列大小和判断队列是否为空、是否为满的功能,同时要求在入队时如果队 列已满则等待指定时间、出队时如果队列已空则等待指定时间等辅助功能。 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、了解标准库 time 中 time()函数的用法。 2、了解如何定义一个类。 3、理解队列结构的特点。 4、理解入队和出队时超时功能的实现。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:1. 简单解释 Python 中以下划线开头的变量名特点? 实验项目九 Text file operation 实验名称:Text file operation 实验内容:编写一个程序 demo.py,要求运行该程序后,生成 demo_new.py 文件, 其中内容与 demo.py 一样,只是在每一行的后面加上行号。要求行号以#开始, 并且所有行的#符号垂直对齐。 实验性质:验证型、设计型 实验学时:4 实验目的与要求: 1、熟练掌握内置函数 open()的用法。 2、熟练运用内置函数 len()、max()、enumerate()。 3、理解字符串方法 ljust()
4、理解列表推导式。 实验条件:Anaconda3,Python3:.7以上版本 研究与思考:简单解释Python的字符串驻留机制? 实g验项目十Outlook email virus crawls weather forecast of Shandong cities by using the framework of "scratch" 实验名称:Outlook email virus crawls weather forecast of Shandong cities by using the framework of "scratch" 实验内容:运用工具(Microsoft0ut1ook2003、Microsoft Word2003)实现 outlook邮件病毒,攻击邮箱联系人的电脑安装Python扩展库scrapy,然后 编写爬虫项目,从网站http:/w athe om.cn/shandong/index.shtml 爬取山东各城市的天气预报数据,并把爬取到的天气数据写入本地文本 weather.txt 实验性质:验证型、设计型 实验学时:2 实验目的与要求: l、熟练安装Python扩展库scrapy。 2、熟悉常见HTL标签的用法。 3、理解网页源代码结构。 4、理解scrapy框架工作原理。 实验条件:Anaconda3,Python3.7以上版本 研究与思考:网站如何防止爬虫的侵害? 实验项目十一Data analysis and visual comprehensive experiment 实验名称:Data analysis and visual comprehensive experiment 实验内容:在当前文件夹中生成饭店营业额模拟数据文件data.csv。使用 matplotlib生成折线图,反应该饭店每天的营业额情况:按月份进行统计,使 用matplotlib绘制柱状图显示每个月份的营业额:找出相邻两个月最大涨幅:
4、理解列表推导式。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:简单解释 Python 的字符串驻留机制? 实验项目十 Outlook email virus crawls weather forecast of Shandong cities by using the framework of "scratch" 实验名称:Outlook email virus crawls weather forecast of Shandong cities by using the framework of "scratch" 实验内容:运用工具(Microsoft Outlook 2003、Microsoft Word 2003)实现 outlook 邮件病毒,攻击邮箱联系人的电脑安装 Python 扩展库 scrapy , 然后 编写爬虫项目, 从网站 http://www.weather.com.cn/shandong/index.shtml 爬取山东各城市的天气预报数据,并把爬取到的天气数据写入本地文本 weather.txt。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、熟练安装 Python 扩展库 scrapy。 2、熟悉常见 HTML 标签的用法。 3、理解网页源代码结构。 4、理解 scrapy 框架工作原理。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:网站如何防止爬虫的侵害? 实验项目十一 Data analysis and visual comprehensive experiment 实验名称:Data analysis and visual comprehensive experiment 实验内容:在当前文件夹中生成饭店营业额模拟数据文件 data.csv。使用 matplotlib 生成折线图,反应该饭店每天的营业额情况;按月份进行统计,使 用 matplotlib 绘制柱状图显示每个月份的营业额;找出相邻两个月最大涨幅;
按季度统计该饭店2017年的营业额数据,使用matplot1ib生成饼状图显示 2017年4个季度的营业额分布情况。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: l、熟悉Python标准库csv的用法。 2、熟悉CSV和TXT文件操作。 3、熟练安装扩展库numpy、.pandas、matplotlib。 4、熟悉使用扩展库pandas进行数据分析的基本操作。 5、熟悉使用扩展库matplotlib进行数据可视化的基本操作。 实验条件:Anaconda3,Python3.7以上版本 研究与思考:选择一篇英文文章,如何用柱状图显示每个单词的频次? 四、考核方式 每个实验当堂进行检查,同时进行奖励政策,第一组做完的同学平时成绩加 2分。每次的实验分计算如下: 1.如果实验分为2个小实验,只做完一个为70分,2个实验都做完为100 分。 2.如果实验为1个小实验,做完为100分。 实验课成绩由实验教师根据每位学生所完成的每次实验分累积而得,实验课 成绩为百分制,其与学生课堂出勤、课堂表现、课后作业、思政意识、社会主义 价值观等一起计入平时成绩考核,平时成绩占学期总成绩的30%。 五、推荐实验教材和敦学参考书 实验教材: [1]Bill Lubanovic,Introducing Python:Modern Computing in Simple Packages, O'Reilly Media 2014.12 [2)丁嘉瑞等译,Python语言及其应用,人民邮电出版社,2016.1 [3]董付国.《Python程序设计》,清华大学出版社,2015 [4董付国.《Python程序设计基础》,清华大学出版社,2015
按季度统计该饭店 2017 年的营业额数据,使用 matplotlib 生成饼状图显示 2017 年 4 个季度的营业额分布情况。 实验性质:验证型、设计型 实验学时:2 实验目的与要求: 1、熟悉 Python 标准库 csv 的用法。 2、熟悉 CSV 和 TXT 文件操作。 3、熟练安装扩展库 numpy、pandas、matplotlib。 4、熟悉使用扩展库 pandas 进行数据分析的基本操作。 5、熟悉使用扩展库 matplotlib 进行数据可视化的基本操作。 实验条件:Anaconda3,Python3.7 以上版本 研究与思考:选择一篇英文文章,如何用柱状图显示每个单词的频次? 四、考核方式 每个实验当堂进行检查,同时进行奖励政策,第一组做完的同学平时成绩加 2 分。每次的实验分计算如下: 1. 如果实验分为 2 个小实验,只做完一个为 70 分,2 个实验都做完为 100 分。 2.如果实验为 1 个小实验,做完为 100 分。 实验课成绩由实验教师根据每位学生所完成的每次实验分累积而得,实验课 成绩为百分制,其与学生课堂出勤、课堂表现、课后作业、思政意识、社会主义 价值观等一起计入平时成绩考核,平时成绩占学期总成绩的 30%。 五、推荐实验教材和教学参考书 实验教材: [1] Bill Lubanovic, Introducing Python: Modern Computing in Simple Packages, O'Reilly Media 2014.12 [2] 丁嘉瑞等译, Python 语言及其应用,人民邮电出版社,2016.1 [3] 董付国.《Python 程序设计》,清华大学出版社,2015 [4] 董付国.《Python 程序设计基础》,清华大学出版社,2015
参考书: [1张颖,赖勇浩著.《编写高质量代码一一改善Python程序的91个建议》. 机械工业出版社,2014 [2】杨佩璐,宋强等编著.《Python宝典》.电子工业出版社,2014 六、其他需说明的 大纲修订人:郑心炜 修订日期:2022年1月 大纲审定者:李曼 审定日期:2022年1月
参考书: [1] 张颖,赖勇浩著.《编写高质量代码——改善 Python 程序的 91 个建议》. 机械工业出版社,2014 [2] 杨佩璐,宋强等编著.《Python 宝典》.电子工业出版社,2014 六、其他需说明的 大纲修订人: 郑心炜 修订日期: 2022 年 1 月 大纲审定者: 李曼 审定日期: 2022 年 1 月