Python程序设计基础I 实验大纲_第1页
Python程序设计基础I 实验大纲_第2页
Python程序设计基础I 实验大纲_第3页
Python程序设计基础I 实验大纲_第4页
Python程序设计基础I 实验大纲_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Python程序设计基础》课程实验教学大纲课程名称:Python程序设计基础英文名称:TheBasicPythonlanguageprogramming课程代码:实验课性质:选修课程负责人:大纲主撰人:大纲审核人:一、学时、学分课程总学时:48实验学时:32课程总学分:4实验学分:0二、适用专业及年级2022级软件工程专业大学本科一、二年级学生及其他相关专业21级、20级学生三、实验教学目的与基本要求通过上机操作,力求能够加深学生对课程讲授内容的理解,掌握Python语言的基础语法和程序控制结构、常用数据类型、函数与模块、类与对象,熟练掌握os模块实现文件的安全读写操作,应用Tkinter模块实现简单的图形用户界面设计,能熟练应用PyChram开发环境编写规模较大的应用软件,具备使用Python语言解决实际问题的能力。同时,通过上机编程操作,培养学生对计算机编程的认识,培养学生良好的编程习惯,并逐步积累计算机程序设计的经验和技巧,为后续编写实用型商业软件奠定扎实的基础。对学生上机实验的要求如下:(1)上机实验之前,学生应当为每次上机的内容作好充分准备。对每次上机需要完成的题目进行认真的分析,列出实验具体步骤,写出符合题目要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。(2)按照实验目的和实验内容以及思考题的要求进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。(3)根据实验结果,写出实验报告。实验报告应当包括:实验题目,实验目的,实验要求,程序实现,实验结果以及分析讨论等内容。四、主要仪器设备及消耗品硬件最低要求:Win10系统计算机,CPUIntel酷睿i3或ARMR7以上,内存8GB以上,硬盘200GB以上。每个学生每次上机实验使用同一台计算机。软件:PyCharm社区版或VisualStudio2022社区版或IDLE开发环境。五、实验课程内容和学时分配序号实验项目名称实验学分实验时数每组人数实验类型实验要求实验类别内容提要1输入与输出实验061基础必做专业1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先,调用输入语句,对键盘上进行读取,并将读取得到的字符串赋给name,将变量name的值、是否为字符串类型和数据类型进行输出;2.再次调用输入语句,对键盘进行读取,将读取的字符串赋给age,将age强制类型转换为int型再赋给n1,将以十进制数形式表示的字符串转化为整数,赋给n2,将n2的数据类型进行输出打印。调用内置函数str将n2转化为字符串,赋给s1,再调用内置函数hex将n2转化为十六进制数(字符串形式),赋给s2;3.在当前工程所在目录下创建一个文件zy0201.txt,“mode='w'”表示打开方式为“写入”类型,打开的文件对象设为fd。将文件对象fd不再使用时,应关闭它,将文件对象作为输出设备,即向文件对象fd中写入信息,最后将文件对象进行关闭。2冒泡排序实验061基础必做专业1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先将random模块进行装载,设置伪随机数发生器的种子为299792458,调用模块random的函数shuffle随机打乱列表a的元素;2.将列表a的长度(即元素个数)赋给i,使用while结构,由于i的初始值为序列a的长度,当第一次执行循环时,j从0开始按步长1累加到i-2,对于a[j]和a[j+1]两个相邻元素进行排序,将其中的小数存入a[j],其中的大数存入a[j+1]。再使用if结构,当j为0时,排序a[0]和a[1];当j为1时,排序a[1]和a[2];依次类推,当j为i-2时,排序a[i-2]和a[i-1](a[i-1]为列表a的最后一个元素)。因此,第一次执行将序列a中最大的数保存在a[i-1]中(此时i=len(a),表示保存在序列a的最后一个元素中);3.使用内层while结构,对于每两个相邻元素,先判断如果a[j]大于a[j+1],则将a[j]赋给临时的t;将a[j+1]赋给a[j];将t赋给a[j+1]。即是如果a[j]大于a[j+1],则交换这两个元素的值;4.内层while结构中,“j+=1”用于更新循环变量j的值。这里的j用作列表a的索引号,外循环中,i从len(a)(即列表a的长度)按步长1递减至2,当i为len(a)时,内循环的操作将列表a中的最大值存入列表a的最后一个元素a[i-1]中;当i为len(a)-1时,内循环的操作将表a中除最后一个元素的其余全部元素的最大值保存在a[i-1](即列表a的倒数第2个元素)中,依次类推。完成排序后,将列表进行输出打印。3奶茶店点单实验041基础必做专业1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先,定义表示菜单的字典menu,其中的整数值表示单价,再定义表示下单情况的字典mymenu,其中的整数值表示各个饮品的下单数量;2.使用while结构实现的无限循环。调用输入语句读取一个字符串赋给user,当user为字符“y”时,退出无限循环体。使用一个for结构,输出菜单供用户选择,提示用户输入选择的饮品对应的编号。由输入的饮品编号得到对应的饮品全称字符串。再使用一个for结构,输出饮品规格。提示用户输入饮品规格对应的数字,然后使用match结构,将饮品规格数字转化为饮品规格字符串。之后提示用户输入购买的数量,赋给numb,更新个人点单信息,将数量numb保存在mymenu字典中,最后在while结构中输出提示信息,为下一次循环做准备;3.下面是打印“小票”部分程序,打印“小票”标题和小票出票时间,这里使用了strftime函数,输出一条分界线,输出的另一条分界线,两条分界线间为点单明细表,再输出小票名细表的表头,即“名称规格数量*单价=价格”;4.将0赋给s,s用于保存总的消费金额,再使用一个for结构,对于表示下单情况的字典mymenu中的每个元素e,每次循环时:先判断当点了该饮品“小杯”时,再输出该饮品规格、数量、“*”号、单价以及价格,然后将该饮品的价格累加到s中;然后,判断当点了该饮品“大杯”时,输出该饮品规格、数量、“*”号、单价以及价格,将该饮品的价格累加到s中。之后,定义了一个lambda函数;使用map函数将fun函数作用于两个可迭代对象上,得到每种饮品的花费,保存在s1中。将s1转化为列表,并调用sum函数求和得到总的花费s2。最后输出总价和打八折后的总价和致谢信息。4快速排序实验041基础必做专业1.基于PyCharm集成开发环境下,编写一个完整的Python语言程序,该程序实现将一个列表进行快速排序,首先自定义函数myquicksort,具有三个参数,a表示排序的列表,h表示列表的首索引号(为0),t表示列表的尾索引号(为len(a)-1)。为递归函数设置终止条件,即h与t相同时,终止。再设置第一轮搜索,将首元素作为基准数;将h赋给i,即i指向最左边的元素;将t赋给j,即j指向最右边的元素;2.使用while结构两边的开始搜索,先从右向左搜,再从左向右搜。当i不等于j时,开始这一轮搜索:先从右向左搜,找第一个比基准数小的元素。再从左向右搜,找第一个比基准数大的元素。判断如果j大于i,则交换a[i]和a[j];3.第一轮搜索完成后,将基准数b和a[i]互换。然后,递归算法为对基准数左边的半个序列进行快速排序;再对基准数右边的半个序列进行快速排序;4.在测试程序中,定义列表a,并输出列表a。调用快速排序函数对a进行排序,输出排序后的列表a。5类的继承实验041基础必做专业1.在PyCharm集成开发环境下,编写一个完整的Python语言程序,在该程序中,定义了三个类。首先定义了类Point,表示二维图形中的点,为其定义构造方法,由于使用了公有成员,没有为类Point编写get方法和set方法;2.定义了类Circle,在类中先为其定义构造方法。然后定义了公有方法myarea和公有方法myperi,获取圆的面积和周长。再定义公有方法mydist,该方法计算当前类定义的对象与指定的圆之间的圆心距;3.定义了类Sector,表示扇形,继承了类Circle。为其定义构造方法。定义了公有方法myarea和公有方法mysperi,计算扇形的面积和周长。然后定义公有方法mydist,计算当前类定义的扇形与指定的圆或扇形的圆心距,这里使用父类的同名方法mydist;4.在测试程序中,定义Circle类型的两个对象,将对象表示的圆的面积、周长和两个对象之间的圆心距都进行输出打印;再定义Sector类型的对象,将该对象表示的扇形的面积、周长以及扇形与指定圆之间的圆心距进行输出打印。6文件安全读写操作实验041基础必做专业1.在PyCharm集成开发环境下,编写一个完整的Python语言程序,使用带finally部分的try结构,监督文件打开和写入数据操作,先以只读方式打的文件,赋给对象;向文件对象写入字符串“TodayisTuesday.”。无论是否发生异常,只要文件对象存在,则将文件对象关闭;2.使用为带有finally部分的try结构,监督文件打开和读取数据操作,先以只读方式打开name表示的文件,赋给对象;再读出文件对象中的全部数据。这个过程中无论是否触发异常,都将判断如果文件对象不为None,则关闭文件对象。7“复数计算器”实验041基础必做专业1.基于PyCharm集成开发环境下,编写一个完整的Python语言程序,首先定义类MainForm,在MainForm类中定义构造方法,然后定义界面设计方法myinitgui,这里的“变量”设置原则为:如果变量被类的其他方法使用,例如保存控件内容的变量,则该变量设置为数据成员,即该变量作为self中的变量;如果变量不再被类的其他方法调用,例如控件的界面设计相关的变量,使用局部变量形式,即该变量不作为self中的变量;2.调用静态文本框控件、编辑框控件、复选控件、单选控件、命令控件等和三种布局方法对图形用户界面进行设计;3.对命令按钮绑定的回调函数进行定义,使用了try-except-else结构。读取两个编辑框中的数据并转化为复数,如果遇到异常则在命令行窗口输出异常提示信息,注意:在图形用户界面程序下,这个异常输出不显示;在使用PyCharm运行模式下,若有异常输出,可以PyCharm的命令行窗口中查看异常。再使用一个if结构,判断如果“取共轭”复选框选中,则将两个复数取共轭。然后一个match多分支结构,根据单选钮的状态,分别计算两个复数的和、差、积或商。最后使用一个if结构,判断如果“取模”复选框选中,则计算结果的模;4.将结果的字符串形式以只读形式在第三个编辑框中显示。当第三个编辑框内容改变后,图形用户界面刷新时,将编辑框的新内容将显示在控件中。图形用户界面程序的刷新率不是固定的,由操作系统决定,一般,当某个控件的内容变化时,将启动一次显示刷新;5.在测试程序中,通过MainForm类创建了一个窗口对象,再调用方法,启动窗口,让窗口对象进入事件等待状态。实验一、输入与输出实验实验目的:1.熟练掌握Python语言的输入和输出语句;2.了解程序调试过程;3.灵活运用列表和字符串的使用;实验要求:1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先,调用输入语句,对键盘上进行读取,并将读取得到的字符串赋给name,将变量name的值、是否为字符串类型和数据类型进行输出;2.再次调用输入语句,对键盘进行读取,将读取的字符串赋给age,将age强制类型转换为int型再赋给n1,将以十进制数形式表示的字符串转化为整数,赋给n2,将n2的数据类型进行输出打印。调用内置函数str将n2转化为字符串,赋给s1,再调用内置函数hex将n2转化为十六进制数(字符串形式),赋给s2;3.在当前工程所在目录下创建一个文件zy0201.txt,“mode='w'”表示打开方式为“写入”类型,打开的文件对象设为fd。将文件对象fd不再使用时,应关闭它,将文件对象作为输出设备,即向文件对象fd中写入信息,最后将文件对象进行关闭。实验二、冒泡排序实验实验目的:1.掌握random模块的使用;2.熟练掌握各种程序控制结构的使用。实验要求:1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先将random模块进行装载,设置伪随机数发生器的种子为299792458,调用模块random的函数shuffle随机打乱列表a的元素;2.将列表a的长度(即元素个数)赋给i,使用while结构,由于i的初始值为序列a的长度,当第一次执行循环时,j从0开始按步长1累加到i-2,对于a[j]和a[j+1]两个相邻元素进行排序,将其中的小数存入a[j],其中的大数存入a[j+1]。再使用if结构,当j为0时,排序a[0]和a[1];当j为1时,排序a[1]和a[2];依次类推,当j为i-2时,排序a[i-2]和a[i-1](a[i-1]为列表a的最后一个元素)。因此,第一次执行将序列a中最大的数保存在a[i-1]中(此时i=len(a),表示保存在序列a的最后一个元素中);3.使用内层while结构,对于每两个相邻元素,先判断如果a[j]大于a[j+1],则将a[j]赋给临时的t;将a[j+1]赋给a[j];将t赋给a[j+1]。即是如果a[j]大于a[j+1],则交换这两个元素的值;4.内层while结构中,“j+=1”用于更新循环变量j的值。这里的j用作列表a的索引号,外循环中,i从len(a)(即列表a的长度)按步长1递减至2,当i为len(a)时,内循环的操作将列表a中的最大值存入列表a的最后一个元素a[i-1]中;当i为len(a)-1时,内循环的操作将表a中除最后一个元素的其余全部元素的最大值保存在a[i-1](即列表a的倒数第2个元素)中,依次类推。完成排序后,将列表进行输出打印。实验三、奶茶店点单实验实验目的:1.掌握字典的使用;2.掌握使用lambda函数。实验要求:1.在PyCharm集成开发环境下,编写一个完整的Python语言程序。首先,定义表示菜单的字典menu,其中的整数值表示单价,再定义表示下单情况的字典mymenu,其中的整数值表示各个饮品的下单数量;2.使用while结构实现的无限循环。调用输入语句读取一个字符串赋给user,当user为字符“y”时,退出无限循环体。使用一个for结构,输出菜单供用户选择,提示用户输入选择的饮品对应的编号。由输入的饮品编号得到对应的饮品全称字符串。再使用一个for结构,输出饮品规格。提示用户输入饮品规格对应的数字,然后使用match结构,将饮品规格数字转化为饮品规格字符串。之后提示用户输入购买的数量,赋给numb,更新个人点单信息,将数量numb保存在mymenu字典中,最后在while结构中输出提示信息,为下一次循环做准备;3.下面是打印“小票”部分程序,打印“小票”标题和小票出票时间,这里使用了strftime函数,输出一条分界线,输出的另一条分界线,两条分界线间为点单明细表,再输出小票名细表的表头,即“名称规格数量*单价=价格”;4.将0赋给s,s用于保存总的消费金额,再使用一个for结构,对于表示下单情况的字典mymenu中的每个元素e,每次循环时:先判断当点了该饮品“小杯”时,再输出该饮品规格、数量、“*”号、单价以及价格,然后将该饮品的价格累加到s中;然后,判断当点了该饮品“大杯”时,输出该饮品规格、数量、“*”号、单价以及价格,将该饮品的价格累加到s中。之后,定义了一个lambda函数;使用map函数将fun函数作用于两个可迭代对象上,得到每种饮品的花费,保存在s1中。将s1转化为列表,并调用sum函数求和得到总的花费s2。最后输出总价和打八折后的总价和致谢信息。实验四、快速排序实验实验目的:1.掌握自定义函数的格式;2.掌握递归函数;3.掌握快速排序算法的原理。实验要求:1.基于PyCharm集成开发环境下,编写一个完整的Python语言程序,该程序实现将一个列表进行快速排序,首先自定义函数myquicksort,具有三个参数,a表示排序的列表,h表示列表的首索引号(为0),t表示列表的尾索引号(为len(a)-1)。为递归函数设置终止条件,即h与t相同时,终止。再设置第一轮搜索,将首元素作为基准数;将h赋给i,即i指向最左边的元素;将t赋给j,即j指向最右边的元素;2.使用while结构两边的开始搜索,先从右向左搜,再从左向右搜。当i不等于j时,开始这一轮搜索:先从右向左搜,找第一个比基准数小的元素。再从左向右搜,找第一个比基准数大的元素。判断如果j大于i,则交换a[i]和a[j];3.第一轮搜索完成后,将基准数b和a[i]互换。然后,递归算法为对基准数左边的半个序列进行快速排序;再对基准数右边的半个序列进行快速排序;4.在测试程序中,定义列表a,并输出列表a。调用快速排序函数对a进行排序,输出排序后的列表a。实验五、类的继承实验实验目的:1.掌握类与对象的定义;2.掌握类中的属性与方法的使用;3.掌握类之间的继承关系。实验要求:1.在PyCharm集成开发环境下,编写一个完整的Python语言程序,在该程序中,定义了三个类。首先定义了类Point,表示二维图形中的点,为其定义构造方法,由于使用了公有成员,没有为类Point编写get方法和set方法;2.定义了类Circle,在类中先为其定义构造方法。然后定义了公有方法myarea和公有方法myperi,获取圆的面积和周长。再定义公有方法mydist,该方法计算当前类定义的对象与指定的圆之间的圆心距;3.定义了类Sector,表示扇形,继承了类Circle。为其定义构造方法。定义了公有方法myarea和公有方法mysperi,计算扇形的面积和周长。然后定义公有方法mydist,计算当前类定义的扇形与指定的圆或扇形的圆心距,这里使用父类的同名方法mydist;4.在测试程序中,定义Circle类型的两个对象,将对象表示的圆的面积、周长和两个对象之间的圆心距都进行输出打印;再定义Sector类型的对象,将该对象表示的扇形的面积、周长以及扇形与指定圆之间的圆心距进行输出打印。实验六、文件安全读写操作实验实验目的:1.掌握文件的读写操作;2.掌握常用的异常处理结构;3.灵活地将异常处理结构运用到文件读写操作。实验要求:1.在PyCharm集成开发环境下,编写一个完整的Python语言程序,使用带finally部分的try结构,监督文件打开和写入数据操作,先以只读方式打的文件,赋给对象;向文件对象写入字符串“TodayisTuesday.”。无论是否发生异常,只要文件对象存在,则将文件对象关闭;2.使用为带有finally部分的try结构,监督文件打开和读取数据操作,先以只读方式打开name表示的文件,赋给对象;再读出文件对象中的全部数据。这个过程中无论是否触发异常,都将判断如果文件对象不为None,则关闭文件对象。实验七、“复数计算器”实验实验目的:1.理解视窗设计流程;2.会使用各种界面布局方法;3.掌握各种控件的使用。 实验要求:1.基于PyCharm集成开发环境下,编写一个完整的Python语言程序,首先定义类MainForm,在MainForm类中定义构造方法,然后定义界面设计方法myinitgui,这里的“变量”设置原则为:如果变量被类的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论