版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
库的应用库是具有相关功能模块的集合,库中有肴数故庞大的模块和包可供使用。模块(module)本质上是一个py文件,可实现一定的功能;而包(package)是一个由模块和子包组成的Python应用程序执行环境,其本质是一个有层次的文件目录结构(必须带有一个_init_.py文件)。本书从使用角度出发,不区分模块和包,统称为模块。要想“现找现用”这些资源,首先就得知道解决某个问题需要用到什么模块,一般情况下,在互联网上进行问题的主题同搜索就会得到相应的信息;然后将指定模块导入当前程序。9.1案例:绘制多彩多角星9.1.1提岀问题
对于一个初学者,如果想要尝试用计算机来解决一些日常生活和学习中遇到的计算问题,就要学者“说”计算机能“憧”的话。那么,Python作为一种计算机语言,它好学吗?作为一个Python初学者,想要很快通过编程完成一些任务,你觉得可能吗?下面就尝试绘制一些有趣的图形——多彩多角星(如图9-2所示),体验Python编程的乐趣。9.1.2解决方案
解决这个问题的基本思路如下:首先,需要知道绘制的是几角星、边长是多少、边线有几种颜色、填充的又是什么颜色,以及有多少颗星星在环绕;接着,针对不同的角数(如五角星、九角星等)来设计具体怎么画,这里会涉及平面几何的内角、外角计算等;然后,让计算机按指定边长绘制这颗多角星,其边线颜色不同,内部还有不同的填充颜色;最终,通过旋转一定角度后反复绘制这颗多角星就能构成多星环绕。9.1案例:绘制多彩多角星再识Python3。1)导入模块:import和from…importimport的语法如下:import模块名#导入一个模块from模块名import指定元素[as新名称]#导入模块中的指定元素,新名称通常是简称from模块名import*#导入模块中的全部元素比如,导入turtle库,输入以下命令:importturtle在当前程序中导入指定模块后,才能使用该模块中包含的各种功能,具体形式如下:模块名.函数名()比如,让圆笔顺时针旋转1200,输入以下命令:Turtle.right(120)9.1案例:绘制多彩多角星2)库:turtleturtle是Python标准库,它是一个很流行的绘制图形的函数库:一只“小乌龟”从坐标原点开始,面朝正方向,受一组指令的控制,在平面直角坐标系中移动,从而在它爬行的路径上绘制出图形。9.1案例:绘制多彩多角星9.1.3任务1——绘制一个三角形新建文件task1-l-l-star.py,按下述任务目标和任务分析编写源代码,完成任务1。任务目标:绘制一个三角形,能够灵活地设置三角形的边长、角度和颜色,为之后绘制多角星做准备。任务分析:本任务是在引例1-1-1的基础上加以改进完成的,为边长、转角、颜色赋值后,依次绘制三条等长的线段,每条线段绘制完成后,画笔都顺时针转向120°,从而构成等边三角形。9.1案例:绘制多彩多角星代码解析:任务1的源代码如图9-5所示。9.1案例:绘制多彩多角星任务1程序运行后的结果如图9-6所示。9.1案例:绘制多彩多角星9.1.4任务2——快速绘制一颗多角星任务目标:绘制如图9-7所示的五角星、九角星和二十三角星。9.1案例:绘制多彩多角星9.1.4任务2——快速绘制一颗多角星任务目标:绘制如图9-7所示的五角星、九角星和二十三角星。1.步骤1:三角形变成五角星步骤1分析:三角形变成五角星,转角公式的意义(side_angle=180-180/3)就在于此。将3修改成5,就是绘制五角星所需顺时针转动的角度;将绘制一条边线(直线+转向)的两行代码再复制两次,共绘制5条边线,就构成了一颗五角星。代码解析:步骤1的源代码如图9-8所示。步骤1的代码在任务1的代码基础上进行了増加和修改,具体来说,有以下两处变化。代码行5:修改代码。将3改成5,计算的结果就是绘制五角星所需的转角——144°。代码行14~17:新增代码。将绘制一条边线的两行代码再复制两次,从而构成五角星。9.1案例:绘制多彩多角星9.1.4任务2——快速绘制一颗多角星任务目标:绘制如图9-7所示的五角星、九角星和二十三角星。1.步骤1:三角形变成五角星步骤1分析:三角形变成五角星,转角公式的意义(side_angle=180-180/3)就在于此。将3修改成5,就是绘制五角星所需顺时针转动的角度;将绘制一条边线(直线+转向)的两行代码再复制两次,共绘制5条边线,就构成了一颗五角星。代码解析:步骤1的源代码如图9-8所示。步骤1的代码在任务1的代码基础上进行了増加和修改,具体来说,有以下两处变化。代码行5:修改代码。将3改成5,计算的结果就是绘制五角星所需的转角——144°。代码行14~17:新增代码。将绘制一条边线的两行代码再复制两次,从而构成五角星。9.1案例:绘制多彩多角星完成步骤1后,程序运行结果如图9-9所示。9.1案例:绘制多彩多角星2.步骤2:用for语句来简化复制9.1案例:绘制多彩多角星3.步骤3:快速灵活地设置9.1案例:绘制多彩多角星9.1.5任务3—绘制三色边线任务目标:之前绘制的多角星边线都是单一颜色(蓝色)的,现在要绘制有3种边线颜色(蓝、绿、红交替岀现)的多角星。任务分析:如何实现边线颜色的变化呢?这里的颜色变化是有规律的,即蓝、绿、红三色交替出现,这种规律是可以通过判断来实现的。判断什么呢?判断哪些边线的颜色是蓝色、哪些是绿色、哪些是红色。也就是说,不同的颜色与每条边线的对应关系可以通过订语句来实现,由于涉及3种颜色,就要用到if-elif-else结构。9.1案例:绘制多彩多角星9.1.5任务3—绘制三色边线这里对任务2的代码进行了结构改造,将以下两行代码进行扩展:side_color='blue'turtle.color(side_color)9.1案例:绘制多彩多角星9.1.5任务3—绘制三色边线步骤1:移动代码,增加缩进需要将上面的两行代码(画笔颜色变量赋值、设置画笔颜色)从for语句之外移动到for语句的控制范围内,而且要放在绘制边线(turtle,forward)的代码之前。也就是说,对于每一条边线,先设置画笔颜色,再进行绘制。9.1案例:绘制多彩多角星9.1.5任务3—绘制三色边线步骤2:修改代码3种画笔颜色与每一条边线的对应关系要通过if语句来实现,那么,需要将直接设置画笔颜色的代码(side_color=‘blue')修改成多分支结构的if语句,其中的判断是针对变量side的值进行的。forsideinrange(side_num):在for语句中,变最side的值依次为0、1、…、side_num-l,可以对应每一条边线(即第1条边线side为0,第2条边线side为1,依此类推),而side%3的结果只有3种情况:0、1、2,正好与3种颜色相对应。9.1案例:绘制多彩多角星9.1.5任务3—绘制三色边线在这里,为了能看清线条颜色,将三十三角星改为九角星(代码行4)。任务3程序运行后的结果如图9-16所示。9.1案例:绘制多彩多角星9.1.6任务4——自行设置角星任务目标:当前绘制的角星边长和角数都是在代码中直接赋值的(side_num=9和side_length=300),这在灵活性上有所欠缺.希望能够自行设置。此外,为了让角星更漂亮,我们要为它填充颜色。任务分析:角星边K、角数、填充颜色可以从键盘输入所希望的值,而为绘制的三色角星填充颜色需要一定的步骤,即准备开始填充、填充颜色、结束填充。9.1案例:绘制多彩多角星9.1.6任务4——自行设置角星代码解析:任务4的源代码如图9-17所示。9.1案例:绘制多彩多角星9.1.6任务4——自行设置角星任务4程序运行后的结果如图9-18所示。在系统提示后,用户从键盘输入相应的值并按回车键,计算机根据输入的数据绘制图形。9.1案例:绘制多彩多角星9.1.7拓展任务:多星环绕拓展任务程序运行后的结果9.2案例:图片文件快速整理9.2.1提出问题很多时候会遇到这样一种情况:打开网页,发现里血有很多自己感兴趣、未来可能会用到的图片素材。那接下来要怎么办呢?如图9-20所示,是否可以把所有网页素材文件中的图片文件复制到一个新文件夹中,并统一改成方便记忆和査看的名字,以便于进一步使用呢?9.2案例:图片文件快速整理9.2.2解决方案解决这个问题的基本思路如下:首先,新建一个文件夹,用于存放图片文件;接着,从大量文件中选择图片文件,网页中常用的图片类型有4种(jpg、png、gif、webp);最后,将这些图片文件复制到新建文件夹中并统一改名。其中,选择图片文件涉及重复工作,需要对当前文件夹中的所有文件(夹)进行逐个判断.如果是图片文件,才进行进一步处理。基于以上思路,问题的解决就会涉及操作系统的文件和文件夹操作,因此,需要用到相应的Python标准库—os和shutil。9.2案例:图片文件快速整理9.2.3预备知识
1.内置函数:len和str2字符串:转义符和endswith方法3.库:OS9.2案例:图片文件快速整理【引例9.1](exp1-2-l.py)显示当前文件夹中的文本文件。
显示当前文件夹(C:\用户\admin\PycharmProjects\untitled)下的文本文件,该文件路径下的内容如图9-22所示。9.2案例:图片文件快速整理2.引例分析首先,要获取当前文件夹下的所有内容(包括文件和文件夹);然后,针对这些内容中的每一项进行判断,如果是文本文件,就在屏幕上显示其文件名(如图9-23所示)。9.2案例:图片文件快速整理2.引例分析首先,要获取当前文件夹下的所有内容(包括文件和文件夹);然后,针对这些内容中的每一项进行判断,如果是文本文件,就在屏幕上显示其文件名(如图9-23所示)。9.2案例:图片文件快速整理3.引例实现9.2案例:图片文件快速整理【引例9.2](exp1-2-2.py)新建文件夹并复制一个文件。1.引例描述把当前文件夹(C:\用户\admin\PycharmProjects\untitled)下的一个指定文件复制到一个新文件夹下。2.引例分析首先,在屏幕上显示当前文件夹下的所有内容(包括文件和文件夹);然后,从键盘输入想要新建的文件夹名,并创建这个文件夹;接着,从键盘输入想要复制的文件名,并将这个文件复制到新建的文件夹下;最后,在屏幕上显示新建文件夹下的内容。效果如图9-25所示9.2案例:图片文件快速整理【引例9.2](exp1-2-2.py)新建文件夹并复制一个文件。3.引例实现引例9_2_2的源代码如图9-26所示9.2案例:图片文件快速整理4.源代码分析代码行3:导入shutil库,用于复制文件。代码行8:变量new_dir表示新文件夹名,通过input函数为其赋值,实现由用户从键盘自行输入所希望创建的文件夹名。代码行9:在当前文件夹下创建(os.mkdir)—个文件夹,命名为变量new_dir的值。代码行11:变量file表示文件名,通过input函数为其赋值,实现由用户从键盘自行输入所希望复制的文件名。代码行12:以如图1-42所示的输入值为例(file的值为0v.txt,new_dir的值为new),其功能是将文件0v.txt复制一份,命名为new/0v.txt。也就是说,将当前文件夹下的文件(Ov.txt)复制到新建的文件夹(new)下,文件名不变。9.2案例:图片文件快速整理9.2.4任务1——快速复制jpg文件新建文件task1-2-l.py,按下述任务目标和任务分析编写代码,完成任务1。任务目标:将当前文件夹下所有jpg图片文件复制到一个新文件夹下。任务分析:首先,列出当前文件夹下的所有文件(夹);然后,由键盘输入想要创建的文件夹名称,并在当前文件夹下创建这个新文件夹;接着,针对当前文件夹下的所有文件(夹),逐个判断是否为jpg图片文件,如果是jpg图片文件,就将该文件复制到新建的文件夹下;最后,列出新建文件夹下的内容,以便查看操作结果。9.2案例:图片文件快速整理9.2.4任务1——快速复制jpg文件新建文件task1-2-l.py,按下述任务目标和任务分析编写代码,完成任务1。任务目标:将当前文件夹下所有jpg图片文件复制到一个新文件夹下。任务分析:首先,列出当前文件夹下的所有文件(夹);然后,由键盘输入想要创建的文件夹名称,并在当前文件夹下创建这个新文件夹;接着,针对当前文件夹下的所有文件(夹),逐个判断是否为jpg图片文件,如果是jpg图片文件,就将该文件复制到新建的文件夹下;最后,列出新建文件夹下的内容,以便查看操作结果。9.2案例:图片文件快速整理9.2.4任务1——快速复制jpg文件代码解析:任务1的源代码如图9-27所示9.2案例:图片文件快速整理9.2.4任务1——快速复制jpg文件代码解析:任务1的源代码如图9-27所示9.2案例:图片文件快速整理9.2.4任务1——快速复制jpg文件任务1程序运行后的结果如图9-28所示。9.2案例:图片文件快速整理9.2.5任务2——复制并统计图片文件任务目标:网页中常用的图片类型主要有jpg、png、gif、webp,因此,在任务1的基础上,将判断“是否为jpg图片文件”扩展为判断“是否为任意一种图片文件”;在判断条件完整的情况下,复制图片文件并统计图片文件的总个数。任务分析:针对4种图片类型,需要将之前的判断条件由一个(jpg)增加至4个(jpg、png、gif、webp),它们之间的逻辑关系是“或者”,也就是说,只要文件的扩展名是其中的任何一种,该文件就是图片文件,图片文件的个数就会递增;全部文件处理完成后,图片文件的总数也就统计出来了。9.2案例:图片文件快速整理9.2.5任务2——复制并统计图片文件代码解析:9.2案例:图片文件快速整理9.2.5任务2——复制并统计图片文件运行后的结果:9.2案例:图片文件快速整理9.2.6任务3—图片文件统一改名任务目标:在之前的任务中,所有图片文件都是直接复制到新文件夹下的,文件名并未改变,部分长文件名看起来像乱码。因此,需要在复制图片文件的同时,改变文件名,以便进一步使用。任务分析:要实现将所有图片文件在复制的过程中进行快速、统一的改名,就是要保证在图片文件的扩展名不变的前提下,将文件名简化、规律化,在本任务中就以数字进行编号(从1开始)。具体来说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生物质能epc工程总承包合同规范3篇
- 二零二五年度文化旅游并购与全域旅游重组合同3篇
- 二零二五年度智慧城市定向技术服务合同范本3篇
- 2025年度网络建设施工合同服务内容扩展3篇
- 二零二五年度智能交通信号系统安装服务协议
- 海南政法职业学院《商业美术插图》2023-2024学年第一学期期末试卷
- 邯郸科技职业学院《创意设计实践》2023-2024学年第一学期期末试卷
- 洪水调解课程设计
- 二零二五年度房屋拆除项目居民意见征询及协调协议3篇
- 运输课课程设计书模板
- 广东省深圳市宝安区2024-2025学年八年级英语上学期1月期末英语试卷(含答案)
- 《招标投标法》考试题库200题(含答案)
- 《交通运输行业安全生产监督检查工作指南 第2部分:道路运输》
- 初二生物期末质量分析及整改措施
- 公交车站台服务规范与安全意识
- 驾驶证学法减分(学法免分)试题和答案(50题完整版)1650
- 山东中医药大学中西医临床(专升本)学士学位考试复习题
- 铁路货场平面设计说明书
- 抽象函数的单调性
- 2019年血站绩效考核标准
- 义务教育语文课程常用字表3500字
评论
0/150
提交评论