Python程序设计(林清滢)全套课件_第1页
Python程序设计(林清滢)全套课件_第2页
Python程序设计(林清滢)全套课件_第3页
Python程序设计(林清滢)全套课件_第4页
Python程序设计(林清滢)全套课件_第5页
已阅读5页,还剩353页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计主讲人:林清滢第1章+初识Python程序.pptx第2章+程序基本构成.pptx第3章+程序控制结构.pptx第4章+函数+.pptx第5章+复合数据类型.pptx第6章+文件操作.pptx第7章数据可视化V2.pptx第8章图像处理V2.pptx第1章初识Python程序目录/CONTENTS第2章程序基本构成第3章控制结构第4章函数第5章复合数据类型第6章文件读写第7章数据可视化第8章图像处理第1章初识Python程序了解程序设计语言的发展过程。理解Python语言的特点以及其重要性。掌握Python程序开发和运行环境的配置方法。掌握Python语言绘制图形的一般方法。LearningTarget学习目标1.1程序设计语言1.1.1程序设计语言概述程序设计语言也叫编程语言,是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。按照程序设计语言规则组织起来的一组计算机指令称为计算机程序。-编程语言有超过600种,绝大部分都不再被使用-C语言诞生于1972年,它是第一个被广泛使用的编程语言-Python语言诞生于1990年,它是最流行最好用的编程语言1.1程序设计语言

程序设计语言的分类:按程序设计语言与硬件的层次关系可将程序设计语言分为低级语言(机器语言、汇编语言)和高级语言;按程序执行方式可分为解释型语言和编译型语言。机器语言是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言。机器语言的优点是占用内存少、执行速度快;缺点是编程难、阅读难、修改难、移植难。例如:11010010001110111.1程序设计语言②汇编语言是将机器语言的二进制指令,用简单符号(助记符)表示的一种语言。因此,汇编语言与机器语言本质上是相同的,都可以直接对计算机硬件设备进行操作。因为汇编语言与计算机硬件设备(主要是CPU)相关,不同系列CPU的机器指令不同,因此它们的汇编语言也不同。例如:进行2+3计算,先将2放入ax寄存器,再将3放入bx寄存器,再执行add相加。用汇编语言编写指令:

movax,2movbx,3addax,bx1.1程序设计语言高级语言将计算机内部的许多相关机器操作指令合并成一条高级程序指令,并且屏蔽了具体操作细节(如内存分配、寄存器使用等),这样大大简化了程序指令,使编程者不需要专业知识就可以进行编程。例如,执行数字2和3加法,高级语言代码为:result=2+3;这个代码只与编程语言有关,与计算机结构无关。至今还经常使用的程序设计语言,包括C、C++、C#、HTML、Java、JavaScript、PHP、Python、SQL等。1.1程序设计语言1.1.2编译和解释计算机并不能直接执行用高级语言编写的源代码,源代码必须通过“翻译器”翻译成机器代码(目标代码)的形式,才能被计算机识别和执行。而源程序的翻译有两种方式:编译和解释。因此按程序执行方式,程序设计语言又可分为解释型语言和编译型语言。编译:是将源代码一次性转换成目标代码的过程。通常,源代码是高级语言代码,目标代码是机器语言代码,执行编译过程的程序称为编译器(Compiler)。如图1-1展示了程序的编译过程1.1程序设计语言编译:是将源代码一次性转换成目标代码的过程。编译器程序执行输入输出高级语言源代码机器语言目标代码图1-1程序的编译和执行过程1.1程序设计语言解释:是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。执行解释过程的程序称为解释器(Interpreter)。如图1-2展示了程序的解释过程。其中,高级语言源代码与数据一同输入给解释器,然后输出运行结果。解释器高级语言源代码输入输出图1-2程序的解释和执行过程Python语言是解释型语言1.1程序设计语言采用编译方式有如下好处:

(1)对于相同源代码,编译所产生的目标代码执行速度更快。 (2)目标代码不需要编译器就可以运行,但需在相同类型操作系统上运行。编译器程序执行输入输出高级语言源代码机器语言目标代码1.1程序设计语言采用解释方式有如下好处:(1)解释执行需要保留源代码,程序纠错和维护十分方便。(2)只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。解释器高级语言源代码输入输出1.2Python语言概述1.2.1Python语言的发展Python语言是一种解释型的高级程序设计语言。由荷兰计算机科学家GuidovanRossum(吉多.范罗苏姆)于1989年12月开始设计并领导开发,1990年推出。Python[paiθən],译为“蟒蛇”。1.2Python语言概述1.2.1Python语言的发展2000年10月,Python2.0正式发布,标志着Python语言解决了其解释器和运行环境中的诸多问题,开启了Python广泛应用的新时代。2010年,Python2.x系列发布了最后一版,其主版本号为2.7,用于终结2.x系列版本的发展,并且不再进行重大改进。2008年12月,Python3.0正式发布。1.2Python语言概述1.2.1Python语言的发展Python3.0版本在语法层面和解释器内部做了很多重大改进,解释器内部采用完全面向对象的方式实现。这些重要修改所付出的代价是3.x系列版本代码无法向下兼容Python2.0系列的既有语法,因此,所有基于Python2.0系列版本编写的库函数都必须修改后才能被Python3.0系列解释器运行。“Python2.x已经是遗产,Python3.x是这个语言的现在和未来”。1.2Python语言概述1.2.2Python语言的特点1.语法简洁:实现相同功能,Python语言的代码行数仅相当于其他语言1/10~1/5。1.2Python语言概述1.2.2Python语言的特点2.与平台无关:作为解释型的语言,Python程序可以在任何安装解释器的计算机环境中执行,因此,用该语言编写的程序可以不经修改地实现跨平台运行。3.粘性扩展:Python语言具有优异的扩展性,体现在它可以集成C、C++、Java等语言编写的代码,通过接口和函数库等方式将它们“粘起来”(整合在一起)。此外,Python语言本身提供了良好的语法和执行扩展接口,能够整合各类程序代码。1.2Python语言概述4.开源理念:对于高级程序员,Python语言开源的解释器和函数库具有强大的吸引力,更重要地,Python语言倡导的开源软件理念为该语言发展奠定了坚实的群众基础。5.通用灵活:Python语言是一个通用编程语言,可用于编写各领域的应用程序,这为该语法提供了广阔的应用空间。几乎各类应用,从图像处理、科学计算、数据处理到人工智能、机器人,Python语言都能够发挥重要作用。6.强制可读:Python语言通过强制缩进来体现语句间的逻辑关系,显著提高了程序的可读性,进而增加了Python程序的可维护性。1.2Python语言概述7.支持中文:Python3.0解释器采用UTF-8编码表达所有字符信息。UTF-8编码可以表达英文、中文、韩文、法文等各类语言,因此,Python程序在处理中文时更加灵活且高效。8.模式多样:尽管Python3.0解释器内部采用面向对象方式实现,但Python语法层面却同时支持面向过程和面向对象两种编程方式,这为使用者提供了灵活的编程模式。9.类库丰富:Python解释器提供了几百个内置类和函数库,此外,世界各地程序员通过开源社区贡献了十几万个第三方函数库,几乎覆盖了计算机技术的各个领域,编写Python程序可以大量利用已有的内置或第三方代码。1.2Python语言概述Python语言是通用语言Python语言是解释型语言Python语言是开源语言Python语言是跨平台语言语言简洁类库丰富强制可读性支持中文字符多种编程方式1.2.2Python语言的特点1.3Python开发环境安装和配置1.3.1安装Python解释器Python语言解释器是一个轻量级的小尺寸软件,可以在Python语言主网站上下载,网址如下:/downloads/单击Download进入下载页面,根据所用操作系统类型选择相应的Python安装文件进行下载(例如Windows7的32位操作系统选择Windowsx86executableinstaller进行下载、

64位操作系统选择Windowsx86-64executableinstaller)双击所下载的程序(这里选择python-3.6.7-amd64.exe)进行Python解释器安装。1.3Python开发环境安装和配置1.3.1安装Python解释器在安装过程中注意勾选图中AddPath3.6toPATH复选框。1.3Python开发环境安装和配置安装成功提示如图1.3Python开发环境安装和配置1.3Python开发环境安装和配置Python安装包将在系统中安装一批与Python开发和运行相关的程序,其中最重要的两个是Python命令行和Python集成开发环境(Python'sIntegratedDeveLopmentEnvironment,IDLE)。IDLE应该算是最原始的Python开发环境之一,没有集成任何扩展库,也不具备强大的项目管理功能。1.3Python开发环境安装和配置1.3.2PyCharm的安装和配置它是由捷克的JetBrains公司开发的一款智能Python集成开发环境(IDE),它提供了一整套工具,可帮助用户提高Python程序开发的效率。比如调试、语法高亮、Project(项目)管理、智能提示、代码自动完成。在PyCharm的官网/pycharm/download/下载合适的版本并进行安装,此处选择开源且免费的Community(社区版)。下载和安装过程,详见教学视频1.3Python开发环境安装和配置启动PyCharm完成安装配置浏览隐私策略,必须拖拽到底部,才能点击Accept继续。1.3Python开发环境安装和配置1.3Python开发环境安装和配置1.3.3开发运行Python程序(1)文件开发模式PyCharm以Project(项目)结构来开发应用程序,项目中可包含多种类型的文件,如:Python文件(扩展名.py)

CreateNewProject

设置项目解释器(ProjectInterpreter)设置项目解释器(ProjectInterpreter)1.3Python开发环境安装和配置项目结构区代码编辑区运行结果区1.3Python开发环境安装和配置(2)交互开发模式启动PyCharm,如果需要使用Python交互开发模式,可以选择菜单”

Tools”→“PythonConsole”命令,打开交互界面,然后输入和运行代码来验证一些知识点的用法。1.4Python简单图形绘制Python的turtle库是一个直观有趣的图形绘制函数库。turtle(海龟)图形绘制的概念诞生于1969年,主要应用于程序设计入门。由于turtle图形绘制概念十分直观且非常流行,Python接受了这个概念,形成了一个Python的turtle库,并成为标准库之一。1.4.1turtle库绘图坐标体系1.4Python简单图形绘制-有一只海龟,在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形-海龟由程序控制,可以改变方向或角度、变换颜色、改变宽度等绝对坐标体系海龟坐标体系1.4Python简单图形绘制需要注意的是,turtle库的绝对方向角度坐标体系以正东向为绝对0度,这也是小海龟初始爬行方向,正西向为绝对180度,如图所示。。turtle库的角度坐标体系1.4Python简单图形绘制1.4.2形状绘制函数turtle通过一组函数控制海龟(画笔)的行进动作,从而绘制形状。如下表:函数作

用forward(d)/fd(d)向小海龟当前行进方向或相反方向(d为负数时)前进d个像素距离,并画出一条直线circle(radius,extent=None)根据半径radius绘制extend角度的弧形;当extent=None,绘制整个圆。raduis为正数时,圆心在小海龟前进左侧;为负数时,圆心在小海龟右侧。seth(angle)设置小海龟当前行进方向角度angle,该角度是绝对方向角度值。right(angle)顺时针移动角度angle,该角度是相对小海龟当前行进方向的角度值left(angle)逆时针移动角度angle,该角度是相对小海龟当前行进方向的角度值importturtleturtle.left(45)turtle.fd(150)turtle.right(135)turtle.fd(300)turtle.left(135)turtle.fd(150)1.4Python简单图形绘制1.4.2形状绘制函数1.4Python简单图形绘制1.4.3画笔控制函数这里将小海龟想象成画笔,画笔的常用控制函数如下表所示,画笔控制设置后一直有效,直至下次重新设置。函数作

用penup()抬起画笔,之后移动画笔不绘制形状。pendown()落下画笔,之后移动画笔将绘制形状。pensize(width)设置画笔宽度,当无参数输入时返回当前画笔宽度。pencolor(color)设置画笔颜色,当无参数输入时返回当前画笔颜色。fillcolor(color)设置绘制图形的填充颜色begin_fill()在绘制要填充颜色的图形之前调用,表示填充开始end_fill()在绘制要填充颜色的图形之后调用,表示填充结束常用的画笔控制函数1.4Python简单图形绘制

能够覆盖视力能感知的所有颜色可用三种基础颜色Red,Green,Blue构成。在计算机RGB色彩体系中,每个基础颜色的取值范围是0-255的整数,或0-1的小数。很多RGB颜色都有固定的英文名字,这些英文名字可以作为pencolor函数的参数,也可以采用(r,g,b)形式直接输入颜色值。几种典型的RGB颜色如表1-2所示。1.4Python简单图形绘制表1-2部分典型RGB颜色对照表英文名称RGB整数值RGB小数值中文名称white255,255,2551,1,1白色black0,0,00,0,0黑色red255,0,01,0,0红色green0,255,00,1,0绿色blue0,0,2550,0,1蓝色yellow255,255,01,1,0黄色cyan0,255,2550,1,1蓝绿色purple160,32,2400.63,0.13,0.94紫色1.4Python简单图形绘制

RGB默认采用小数值,可以用函数colormode(255)切换为整数值,colormode(1.0)切换为小数值。例如:>>>importturtle#导入turtle库>>>turtle.pensize(5)#设置画笔宽度为5像素>>>turtle.colormode(255)>>>turtle.pencolor(255,0,0)#设置画笔颜色为红色>>>turtle.pencolor("blue")1.4Python简单图形绘制【例1.1】用红色画笔绘制两个外切圆,程序的运行效果:importturtle#导入turtle库turtle.pencolor("red")#设置画笔颜色为红色turtle.circle(50)#绘制半径为50像素的圆,半径在小海龟前进左侧turtle.circle(-100)#绘制半径为100像素的圆,半径在小海龟前进右侧turtle.done()#程序运行后绘图窗口不会自动关闭1.4Python简单图形绘制思考:如果把上面程序修改如下,绘制出的图形是什么?importturtleturtle.pencolor("red")turtle.circle(50)turtle.seth(180)#设置小海龟当前行进方向角度为绝对180度turtle.circle(100)turtle.done()1.5实例:简单图形绘制【例1.2】绘制等边三角形,并用蓝色填充图形,程序的运行效果。importturtleturtle.fillcolor("blue")#填充图形颜色为蓝色turtle.begin_fill()turtle.forward(200)#按前进方向画一条200像素的直线turtle.left(120)#画笔按当前方向逆时针旋转120度turtle.forward(200)turtle.left(120)turtle.forward(200)turtle.end_fill()turtle.done()1.5实例:简单图形绘制使用import引用函数库有两种形式,从而对函数的调用方式略有不同。第一种引用函数库的方法如下:import<库名>此时,程序可以调用库名中的所有函数,使用库中函数的格式如下:<库名>.<函数名>(函数参数>)如例1.2中:importturtleturtle.fillcolor("blue")#填充图形颜色为蓝色1.5实例:简单图形绘制第二种引用函数库的方法如下:from<库名>import<函数名,函数名,…,函数名>from<库名>import*#其中*是表示所有函数此时,程序调用该库的函数时不再需要使用库名,即使用库中函数的格式如下:<函数名>(函数参数>)1.5实例:简单图形绘制【例1.3】采用第二种库引用方式修改【例1.2】,代码如下:fromturtleimport*fillcolor("blue")#填充图形颜色为蓝色begin_fill()forward(200)#按前进方向画一条200像素的直线left(120)#画笔按当前方向逆时针旋转120度forward(200)left(120)forward(200)end_fill()done()1.5实例:简单图形绘制【例1.2】与【例1.3】运行结果相同,所不同的是调用turtle库中的函数采用不同方式。两种引用方式各有优点。第一种方式能够显式标明函数的来源,在程序引用较多库时代码可读性更好。第二种方式直接引用库中的函数,可以使代码更简洁。这种程序只引用一个库的情况下,效果更好。小结本章介绍了程序设计语言分类、编译和解释、Python语言的历史和发展、Python程序开发环境配置等内容,最后介绍了Python语言的图形绘制函数库turtle库,并通过实例讲解了turtle库中常用函数的使用。THANKSPython程序设计第1章初识Python程序目录/CONTENTS第2章程序基本构成第3章控制结构第4章函数第5章复合数据类型第6章文件读写第7章数据可视化第8章图像处理第2章程序基本构成掌握Python语言的基本语法元素,包括缩进、关键字、标识符。掌握数值数据类型的概念和运算。掌握字符串类型的概念和基本操作方法。掌握简单输入输出函数了解Python函数类型,掌握标准函数库math和random的常用函数的使用。LearningTarget学习目标2.1Python程序2.1.1Python程序的组成1.Python程序的基本组成Python程序可以分解为模块、语句、表达式。(1)Python程序是由模块组成,模块对应于后缀为.py的源文件。一个Python程序由一或多个模块组成。一个文件就是一个模块,模块把一组相关的函数或语句组织到一个文件中。一个Python源程序可由3部分组成:头部语句块(注释和导入模块)、函数语句块(函数定义或者类定义)、主程序语句块。例1.1程序中importturtle为导入模块语句;turtle.pencolor("red")为调用turtle库中的函数语句,也是主程序语句块。2.1Python程序(2)语句是Python程序的过程构造块,用于创建对象、变量赋值、调用函数、控制分支、循环结构等,语句包含表达式,而表达式是由操作数和运算符构成,用于创建和处理对象。2.Python程序的缩进规则Python使用缩进表示语句块的开始和结束。Python中凡是语句结尾用冒号(:)标识时,下面的语句必须缩进4个空格或者用Tab键实现,但两者不混用;语句块中每一个语句的缩进量相同;当减少缩进时,则表示当前语句块退出或结束。2.1Python程序【例2.1】通过绘制一个五角星图形,简单说明程序的结构和缩进规则importturtleforninrange(5):

turtle.forward(200)turtle.right(144)turtle.done()因为五角星的内角和为180度,故每个内角为36度。因此它的邻补角为144度2.1Python程序2.1.2关键字和标识符1.关键字关键字(也称为保留字)是程序设计语言规定的有特殊含义的单词。简单地说,程序中的关键字就是程序指令。关键字主要采用英语单词表示,也有少部分其他形式,如汉语等。不同版本关键字的数量和定义也不太相同,如Python3.6有33个关键字。Python的关键字可以利用以下方法查看。>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']2.1Python程序2.标识符程序中的变量名、函数名、类名、模块名等字符称为标识符(关键字除外)。标识符的命名由程序员决定,一般要能见名知义。而且标识符还应当符合以下命名规则:(1)标识符必须是大写或小写英文字母、数字和下划线_组成。(2)标识符第一个字符必须是字母、下划线,其后的字符可以是字母、下划线或数字。(3)标识符不允许使用关键字。例如:_name、num12、fun为正确的标识符;而99var、It’sOK、for(关键字)为错误的标识符。注意:(1)Python标识符区分大小写。例如,ABC和abc视为不同的名称。(2)以双下划线开始和结束的名称通常具有特殊的含义。例如,_init_为类的构造函数,一般应避免使用。(3)标识符能不能使用汉字,取决于解释器是否支持Unicode字符集,如Python3.6对Unicode字符集支持很好,因此可以使用汉字。但是,出于对程序兼容性的考虑,建议不采用汉字做标识符。2.1Python程序2.2基本数据类型2.2.1数值数据类型Python包括4种内置的数值类型。1.整数类型在Python中整数类型被定义为int类型。整数类型与数学中整数的概念一致。整数类型共有4种进制表示:十进制、二进制、八进制和十六进制。默认情况下,整数采用十进制,其它进制需要增加引导符号。二进制数以0b或0B引导,八进制数以0o或0O引导,十六进制数以0x或0X引导。如表2-1所示:2.2基本数据类型进制类型引导符号描

述十进制无默认情况,例如1123、1024、-982二进制0b或0B由0、1组成,例如0b101、0B101八进制0o或0O由0到7数字组成,例如0o777、0O777十六进制0x或0X由0到0数字和a到f或A到F组成,例如0x89AB表2-1整数类型的4种进制表示2.2基本数据类型2.布尔类型在Python中布尔类型被定义为bool类型,用于表示布尔逻辑值。布尔类型只有True和False两种值(注意字母的大小写),在Python中,布尔类型还可以与其他数据类型做and、or和not运算。3.浮点类型在Python中浮点类型被定义为float类型,浮点类型与数学中实数的概念一致。浮点数有两种表示方法:小数法和科学计数法。例如,3.14、-1.23、1.1E10、-3e-4。2.2基本数据类型4.复数类型在Python中复数类型被定义为complex类型,复数类型与数学中复数的概念一致,一般形式为x+yj。例如,3+4j、-2-4j、1.2+3.4j。Python用real和imag属性分别获得复数的实部和虚部,例如:>>>1.234E-2+5.67E5j.real0.01234>>>1.234E-2+5.67E5j.imag567000.012342.2基本数据类型2.2.2字符串数据类型在Python中字符串类型被定义为str类型,是一个有序的字符集合。Python中没有独立的字符数据类型,字符即长度为1的字符串。1.字符串类型表示Python字符串类型表示一般使用3种方式定义:(1)单引号('')。包含在单引号中的字符串,其中可以包含双引号。(2)双引号("")。包含在双引号中的字符串,其中可以包含单引号。(3)三单引号(‘’‘’‘’)。包含在三单引号中的字符串,其中可以包含单引号、双引号,可以跨行。2.2基本数据类型例如:>>>'abc''abc'>>>"Hello"'Hello'>>>'''这是程序"Hello.py"的源代码''''这是程序"Hello.py"的源代码'>>>type('abc')<class'str'>字符串是以Unicode编码存储。因此,字符串中的英文字符和中文字符都算是1个字符。2.2基本数据类型2.基本的字符串操作Python提供了5个字符串的基本操作符,如表2-2所示。操作符描

述a+b连接两个字符串a*n或n*a复制n次字符串aains如果a是s的子串,返回True,否则返回Falsestr[i]索引,返回第i个字符str[N:M]切片,返回第N到第M的子串,其中不包含M表2-2字符串的基本操作符例如:>>>"Python"+"程序设计"'Python程序设计'>>>"verygood!"*2'verygood!verygood!'>>>'p'in"Python"False>>>name="Python">>>name[1:3]'yt'2.2基本数据类型2.2基本数据类型3.转义字符特殊字符(不可打印字符)可以使用转义字符表示,转义字符以

\开始紧跟一个字符,如\\、\r、\n等,常用转义字符如表2-3所示。表2-3Python中常用的转义字符转义字符说明转义字符说明\'单引号\r回车\"双引号\f换页\\反斜杠符号\v纵向制表符\a响铃(BEL)\t横向制表符\b退格(Backspace)\Ohh八进制Unicode码hh对应的字符\n换行\xhh十六进制Unicode码对应的字符例如:>>>print("我\t喜欢\t打篮球\r")我

喜欢

打篮球>>>print("d:\\Python\\code")d:\Python\code>>>print('Let\'sgo!')Let'sgo!2.2基本数据类型2.3运算符与表达式Python的运算类型比较丰富,如算术运算、关系运算、逻辑运算、赋值运算等。因此,运算符号也特别多。描述各种不同运算的符号称为运算符,参与运算的数据称为操作数。表达式是由常量、变量、函数、运算符及圆括号等组成的有意义的式子。2.3运算符与表达式2.3.1算术运算符与表达式运算符含义说明实例结果**乘幂操作数的乘幂n**3512*乘法操作数的积n*n*2128/除法左操作数除以右操作数10/n1.25//整数除法两个整数相除,结果为整数10//n1%模数左操作数除以右操作数后的余数10%n2+加法两个操作数之和10+n18-减法左操作数减去右操作数n-10-2表2-4

算术运算符注:表中n取值为8,算术运算符的优先级顺序和数学运算中运算符优先级一样。例如:求下面数学式子的值2.3运算符与表达式>>>((12+8)*(3**2))/(25*6+6)1.15384615384615372.3运算符与表达式2.3.2关系运算符关系运算符用于表达式之间的关系比较,比较的结果是bool类型(即只有“True”或“False”值),通常在程序中用于条件判断。关系运算符的优先级相同,结合方向是从左到右。运算符含义实例结果==相等"abcd"=="abc"False!=不相等"abcd"!="abc"True>大于"abc">"abd"False>=大于或等于123>1234False<小于123<1234True<=小于或等于"abc"<="abd"True表2-5 关系运算符2.3运算符与表达式2.3.3逻辑运算符Python逻辑运算符可以用来操作任何类型的操作数,把非零或非空字符串都认为True。not优于and优于or,同一优先级从左往右计算。表2-6逻辑运算符运算符含义说明实例结果not逻辑非当操作数为False时结果为True;当操作数为True时结果为Falsenot(123>1234)not"abc"TrueFalseand逻辑与当第一个操作数为True时,结果为第二个操作数的值;当第一个操作数为False时,结果为第一个操作数的值(2018%4==0)and(2018%100!=0)0and8False0or逻辑或当第一个操作数为True时,结果为第一个操作数的值;当第一个操作数为False时,结果为第二个操作数的值(2018%4==0)or(2018%100!=0)"abc"or""0or8True'abc'82.3运算符与表达式2.3.4赋值运算符运算符含义实例=将右侧操作数的值赋给左侧的操作数c=a+b表示将a+b的值赋给c

+=将左操作数和右操作数相加后的值赋给左操作数c+=a相当于c=c+a-=将左操作数和右操作数相减后的值赋给左操作数c-=a相当于c=c-a*=将左操作数和右操作数相乘后的值赋给左操作数c*=a相当于c=c*a/=左操作数除以右操作数后的值赋给左操作数c/=a相当于c=c/a%=左操作数除以右操作数后的余数赋给左操作数c%=a相当于c=c%a**=左操作数与右操作数的乘幂的值赋给左操作数c**=a相当于c=c**a//=左操作数除以右操作数后的整数值赋给左操作数c//=a相当于c=c//a2.3运算符与表达式注意:(1)表达式中,圆括号的优先级最高,其他次之。如果表达式中有多层圆括号,遵循由里向外的原则。(2)表达式中有多个不同运算符时,运算顺序为“圆括号→乘方→乘/除→加/减→关系运算符→逻辑运算符→赋值运算符”。(3)在运算符优先级相同的情况下,赋值类表达式遵循先右后左。例如,表达式“x=y=0”,先执行“y=0”运算,再执行“x=y”运算。2.4简单输入与输出计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果。输入是Input,输出是Output,因此,我们把输入输出简写为I/O。2.4.1input()函数input()是一个内置输入函数,它的功能是从键盘读取输入数据,并返回一个字符串(注意,返回值不是数值)。如果希望输入整数,需要用int()函数转换,如果希望输入小数,需要用float()函数转换。例如:2.4简单输入与输出注:当用input同时输入多个数据时,用逗号隔开。当输入的数据是字符串时,输入字符串要用单引号或双引号括住,如下面的例子>>>age=int(input("请输入你的年龄:"))请输入你的年龄:25>>>print(age)252.4简单输入与输出2.4.2eval()函数eval(<字符串>)函数很强大,能将字符串当成有效的表达式来求值并返回计算结果。例如:>>>eval(input("请输入你的姓名和年龄:"))请输入你的姓名和年龄:"张三",20('张三',20)>>>print(eval("1+2"))32.4简单输入与输出2.4.3print()函数输出print()是一个内置输出函数,它的功能是向屏幕输出数据,可以通过用逗号分隔0个或多个表达式。print()函数将表达式转换为字符串输出。例如:>>>age=25>>>print("我的年龄=",age)我的年龄=252.4简单输入与输出2.4.4字符串格式化输出输出时可利用<模板字符串>.format(<逗号分隔的参数>)函数格式化输出,format()函数会返回一个新的字符串。其中模板字符串格式是{<参数序号>:<格式控制标记>},参数序号从0开始编号,如果没有序号,则按照<逗号分隔的参数>出现的顺序格式化;格式控制标记用来控制参数显示时的格式,内容如下:序号:<填充><对齐><宽度><,><.精度><类型>用于填充的单个字符<左对齐>右对齐^

居中对齐设定输出的宽度数字的千位分隔符,适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,c,d,o,x,X浮点数类型e,E,f,%2.4简单输入与输出<.精度>表示两个含义。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。<类型>表示输出整数和浮点数类型的格式规则。

对于整数类型,输出格式包括6种:b:输出整数的二进制方式;c:输出整数对应的Unicode字符;d:输出整数的十进制方式;o:输出整数的八进制方式;x:输出整数的小写十六进制方式;X:输出整数的大写十六进制方式;对于浮点数类型,输出格式包括4种:e:输出浮点数对应的小写字母e的指数形式;E:输出浮点数对应的大写字母E的指数形式;f:输出浮点数的标准浮点形式;%:输出浮点数的百分形式。2.4简单输入与输出>>>"计算机{:#^10}的CPU占用率为{}%".format("Python",10)'计算机##Python##的CPU占用率为10%'>>>"{0:*^20,}".format(12345.67890)'****12,345.6789*****'>>>"{0:*<20.2f}".format(12345.67890)'12345.68************'>>>"{0:.4}".format("Python")'Pyth'2.5函数库2.5.1Python函数类型利用函数库编程是Python语言最重要特点。数学上的函数是指给定一个输入,就会有输出的一种对应关系。程序设计语言里的函数与它基本相同,但也有些差别。Python有4种函数类型:内置函数、标准函数、自定义函数、外部库函数。2.5函数库2.5.1Python函数类型内置函数由Python自带,Python启动后就可以调用,不需要import导入。标准函数由Python自带,Python运行后需要用import导入才能调用。自定义函数由程序员在程序中定义,然后才能在程序中调用。第4章将详细介绍自定义函数的定义和调用。外部库函数不是Python自带的函数,也称为第三方库的函数,需要采用pip工具从网络下载和安装,Python运行后也不会启动,需要由import导入,然后才能在程序中调用。第5章开始各章将会介绍一些常用的第三方库的函数。2.5函数库2.5.2内置函数库可用dir(__builtins__)方法来查看Python内置函数库中的所有函数。Python3.6常用内置函数如表2-8所示。表2-8Python3.6常用内置函数一览表bool()参数转换为布尔值eval()返回表达式计算结果float()转换为浮点数format()格式化字符串help()返回帮助信息input()返回输入值int()转换为整数len()计算字符串长度max()返回最大值min()返回最小值open()打开/建立文件pow()返回x的y次方值print()打印输出range()返回一个整数列表reversed()返回反转的迭代器str()转换为字符串sum()返回累加和type()返回对象类型例如:>>>range(10)#从0开始到10,不包含10的整数列表[0,1,2,3,4,5,6,7,8,9]>>>range(5,11)#从5开始到11,不包含11的整数列表[5,6,7,8,9,10]>>>range(0,30,5)#从0开始到30,步长为5,不包含30的整数列表[0,5,10,15,20,25]2.5函数库2.5函数库2.5.3标准函数库Python标准函数库功能非常强大,它提供了33个大类1000多个函数包,大约数万个函数。这些函数为许多问题提供了标准化解决方案。Python标准函数库网址为“/3/library/index.html”。第1章学过的turtle库就是标准函数库,标准函数库的函数使用,需要用import导入才能调用。下面介绍常用的标准函数库。2.5函数库1.math函数库math库一共提供了4个数学常数和44个函数。44个函数分为4类,包括:16个数值表示函数、8个幂对数函数、16个三角对数函数和四个高等特殊函数。表2-9 math库的数学常数(共4个)常量描

述pi圆周率∏=3.1415926...,可用精度e自然对数e=2.718281...,可用精度inf正无穷大。(对于负无穷大,请使用-math.inf)nan非浮点数标记。NaN(NotaNumber)。函

数描

述ceil(x)取大于等于x的最小的整数值,如果x是一个整数,则返回xfloor(x)取小于等于x的最大整数值,如果x是一个整数,返回自身fabs(x)返回x的绝对值(float类型)factorial(x)返回x阶乘的值fmod(x,y)得到x/y的余数,返回float类型fsum([x,y,…])对参数列表中的每个元素进行求和操作gcd(x,y)返回x和y的最大公约数pow(x,y)返回x的y次幂exp(x)返回e的x次幂,e是自然对数sqrt(x) 返回x的平方根math.sin(x)返回x(弧度)的三角正弦值math.cos(x)返回x(弧度)的三角余弦值

math.tan(x)返回x(弧度)的三角正切值表2-10 math库的常用函数2.5函数库2.5函数库math库中的其它函数使用,可以用dir和help函数查看,例如查看math库中copysign函数>>>importmath>>>dir(math)>>>help(math.copysign)2.5函数库【例2.2】已知三角形的两边长及其夹角,求第三边长(结果保留两位小数)。提示:使用公式(角度×π/180)把输入的角度转为弧度,然后使用余弦定理算出第三条边。importmatha,b,theta=eval(input("输入三角形的两边长及夹角(度):"))c=math.sqrt(a**2+b**2-2*a*b*math.cos(theta*math.pi/180))print("三角形的第三条边是{:.2f}".format(c))2.5函数库2.random函数库随机数在计算机应用中十分常见,Python使用random函数库的主要目的是生成各种分布的伪随机数,伪随机数是用确定性的算法计算出均匀分布的随机数序列,并不是真正意义上的随机数。因此在计算伪随机数时,若使用的种子不变,那么伪随机数的数序也不变。该库提供了不同类型的随机数函数,所有函数都是基于最基本的random()函数扩展实现。random函数库常用的9个随机数生成函数。表2-11 random库的常用函数2.5函数库函数描

述seed(a=None)初始化随机数种子,默认值为当前系统时间random()生成一个[0.0,1.0)之间的随机浮点数uniform(a,b)生成一个[a,b]之间的随机浮点数randint(a,b)生成一个[a,b]之间的随机整数randrang([start],stop[,step])生成一个[start,stop)之间以step为步长的的随机整数choice(seq)从序列类型seq中随机读取一个元素shuffle(x)将序列类型seq中的元素随机排列,俗称为洗牌。返回打乱后的序列。sample(seq,k)从序列类型seq中随机获取k个元素,以序列类型返回getrandbits(k)

生成一个k比特长的随机整数。【例2.3】随机生成4位纯数字验证码2.5函数库fromrandomimport*captcha="{}{}{}{}".format(randint(0,9),randint(0,9),randint(0,9),randint(0,9))print(captcha)如果设定相同随机种子后,每次运行生成的随机数是相同的。例如:fromrandomimport*seed(150)captcha="{}{}{}{}".format(randint(0,9),randint(0,9),randint(0,9),randint(0,9))print(captcha)2.6实例:随机生成一注双色球双色球是一种比较常见的彩票玩法,每一注彩票由6个介于1到33之间的不重复数字和1个介于1到16之间的数字组成。【例2.4】随机生成一注双色球彩票。importrandomred=random.sample(range(1,34),6)blue=random.choice(range(1,17))print("本期双色球开出的号码:")print("红球:",red)print("蓝球:",blue)小结本章首先介绍了Python程序的基本组成和语法元素,包括缩进、关键字、标识符等元素。接着介绍数值数据类型及其运算操作、字符串类型及其基本操作;简单输入输出函数的使用;最后介绍了标准函数库math和random的常用函数的使用,并通过实例熟悉了math和random函数库。THANKSPython程序设计第1章初识Python程序目录/CONTENTS第2章程序基本构成第3章控制结构第4章函数第5章复合数据类型第6章文件读写第7章数据可视化第8章图像处理第3章程序控制结构了解程序的基本控制结构及各结构的流程控制掌握分支语句的应用,包括:单分支语句、双分支语句和多分支语句掌握循环语句的应用,包括:for循环和while循环掌握for循环和while循环带有else的子句LearningTarget学习目标3.1程序的基本结构在程序的控制中存在三种基本结构,即顺序结构、分支结构(即选择结构)和循环结构。这些基本结构都只有一个入口和一个出口。任何程序的实现都由这3种基本结构组合而成。为了直观展示程序结构,此处采用流程图方式来描述。程序流程图用一些图框来表示各种操作,直观形象,易于理解。程序流程图中包括的7种基本元素,如图3-1所示。3.1程序的基本结构图3-1流程图的7种基本元素3.2顺序结构顺序结构是程序的基础,是程序设计中最简单的,只要按照解决问题的顺序写出相应的语句就可以。它的执行从上而下,依次执行,如图3-2所示。图3-2顺序结构的流程图【例3.1】计算军犬速度军犬的耐力是非常有名的。有关资料显示,第一次世界大战期间为传达命令,一只军犬50分钟跑完了21.7km的路程。算一算,这只军犬平均每分跑多少米?图3-3计算军犬速度流程图流程图见图3-3。【例3.1】计算军犬速度代码如下:s=21.7*1000t=50v=s/tprint(v)3.3分支结构3.3.1单分支结构:if语句if语句的语法格式为:if<条件>:<语句块>图3-4if语句的流程图【例3.2】不同消费者买单商家通常会对自己店铺的会员有所优惠,假设会员消费可以打9.5折,非会员用户消费不打折。输入用户的消费额,根据是否会员情况,输出最后应付的金额。代码如下:#不同消费者买单consume=eval(input("输入消费金额:"))flag=eval(input("输入是否会员编号(1:会员,其他:非会员):"))ifflag==1:

consume*=0.95print("用户应付费:{}".format(consume))3.3分支结构3.3.2二分支结构:if-else语句if-else语句描述二分支结构,其语法格式为:if<条件>:<语句块1>else:

<语句块2>图3-5if语句二分支结构的流程图【例3.2续】不同会员消费者买单商家通常会对自己店铺的会员有所优惠,假设会员消费可以打9.5折,非会员用户消费9.9折。输入用户的消费额,根据是否会员情况,输出最后应付的金额。代码可以改写如下:#不同消费者买单consume=eval(input("输入消费金额:"))flag=eval(input("输入是否会员编号(1:会员,其他:非会员):"))ifflag==1:consume*=0.95else:consume*=0.99print("用户应付费:{}".format(consume))3.3分支结构3.3.3

多分支结构:if-elif-else语句if-elif-else语句描述多分支结构,多分支结构为用户提供了更多的选择,可以实现复杂的业务逻辑,其语法格式为:if<条件1>: <语句块1>elif<条件2>: <语句块2>……else: <语句块N>3.3分支结构3.3.3

多分支结构:if-elif-else语句多分支结构的流程图如下图所示:【例3.2再续】不同会员消费者买单商家通常会对自己店铺的会员有所优惠,假设金卡会员消费可以打9折,普通会员打9.5折,非会员用户消费9.9折。输入用户的消费额,根据会员情况,输出最后应付的金额。#不同消费者买单3#会员编号(2:金卡会员,1:普通会员,其他:非会员)#不同的会员消费者买单consume=eval(input(“请输入消费额:”))flag=int(input(“请输入会员编号:”))ifflag==2:consume*=0.9elifflag==1:consume*=0.95else:consume*=0.99print("用户应付费:{:.2f}".format(consume))3.4循环结构for语句一般用于“遍历循环”,即循环次数可以提前确定的情况。通常for语句中的循环次数就是采用遍历的结构中的元素个数。while语句一般用于条件循环,就是根据判断条件来确定是否执行程序的循环,循环次数通常难以确定。当然,循环次数确定的情况也可以用while语句实现,循环次数不确定的情况也可以用for语句实现。Python中提供了两种基本的循环结构:for语句和while语句。3.4循环结构3.4.1遍历循环:for语句for语句的语法格式为:for<循环变量>in<遍历结构>: <循环体>图3-7for语句流程图【例3.3】输入一个小于1000的整数n,计算1+2+3+…+n的值。#循环for语句n=eval(input("请输入一个<1000的整数:"))s=0foriinrange(1,n+1):s+=iprint(s)3.4循环结构3.4循环结构3.4.2

条件循环:while语句图3-8..while语句流程图while语句的语法格式为:while<条件表达式>:

<循环体>用while语句实现【例3.3】,代码可改写为:#循环while语句s=0i=1n=eval(input("请输入一个<1000的整数:"))whilei<=n:s+=ii+=1print(s)3.4循环结构另外,while循环和for循环都可以带else子句,如果循环因为条件表达式不成立而自然结束(循环不是因为执行了break而结束),则执行else结构中的语句;如果循环是因为执行了break语句而提前结束,则不执行else中的语句。其语句格式分别如下:3.4循环结构while<条件表达式>:

<循环体>else:<else子句>for<循环变量>in<遍历结构>:<循环体>else:<else子句>3.4循环结构带else子句的while语句:s,i='China',0whilei<len(s):print("循环进行中:"+s[i])i+=1else:print("循环结束!")带else子句的for语句:forchin'China':print("循环在进行"+ch)else:print("循环结束!")上面两个程序的运行结果是相同的,都为:循环在进行C循环在进行h循环在进行i循环在进行n循环在进行a循环结束!3.4循环结构3.4.3

break和continue语句break语句和continue语句在while循环和for循环中都可以使用,它们一般常与选择结构结合使用,用来辅助控制循环执行。break语句用来跳出当前整个循环,脱离该循环后,程序继续执行循环后的语句。continue语句用来结束本次循环,但不终止当前整个循环,还会继续判断下一次循环的条件是否成立。3.4循环结构3.4.3

break和continue语句break语句,举例:name="Marry" forchinname:ifch=='r':breakprint(ch)输出结果:Macontinue语句,举例:name="Marry"forchinname:ifch=='r':continueprint(ch)输出结果:May3.4循环结构3.4.5分支结构和循环结构的嵌套#根据不同的分数输出不同等级score=eval(input("请输入一个分数:"))ifscore>100orscore<0:print("输入的分数应该0<=score<=100")else:ifscore>=90:print("A")elifscore>=80:print("B")elifscore>=70:print("C")elifscore>=60:print("D")else:print("E")分支结构和循环结构都可以嵌套使用【例3.4】根据不同的考试分数,输出不同的等级

3.4循环结构3.4.5分支结构和循环结构的嵌套【例3.5】打印九九乘法表

#打印九九乘法表foriinrange(1,10):forjinrange(1,i+1):print("{}*{}={:<6}".format(j,i,i*j),end='')print()#打印空行,实现换行3.5实例:控制结构灵活运用3.5.1计算BMI身体质量指数标准体重是反映和衡量一个人健康状况的重要标志之一。过胖和过瘦都不利于健康,也不会给人以健美感。BMI指数(英文为BodyMassIndex,简称BMI),是用体重千克数除以身高米数的平方得出的数字,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。我国的BMI指标分类为:BMI值小于18.5为偏瘦;BMI值大于等于18.5且小于24为正常,BMI值大于等于24且小于等于28为偏胖,BMI值大于28则为肥胖。

3.5实例:控制结构灵活运用3.5.1计算BMI身体质量指数

【例3.6】编写一个程序,输入的身高和体重计算出BMI值,根据该值,输出BMI指标分类。#根据身高和体重,输出BMI指标height,weight=eval(input("请输入身高(m)和体重(kg)[逗号分开]:"))bmi=weight/pow(height,2)str=""ifbmi<18.5:str="偏瘦,请注意饮食!"elif18.5<=bmi<24:str="正常,请保持!"elif24<=bmi<=28:str="偏胖,请注意饮食!"else:str="肥胖,请引起重视!"print("您的体重"+str)3.5实例:控制结构灵活运用3.5.2

猜数字游戏让系统随机生成一个1~10之间的数字,你有3次机会猜这个数是多少,如果3次之内猜对了,系统输出“恭喜,猜对了,一共猜了x次”;如果三次都没猜对,则输出“游戏结束!”。每次输入你要猜的数后,系统根据你输入的值和随机生成的数作比较,告诉你“猜大了”或“猜小了”。3.5实例:控制结构灵活运用3.5.2

猜数字游戏【例3.7】编写猜数字游戏程序。#猜数字游戏importrandomx=random.randint(1,10)foriinrange(1,4):m=eval(input("请输入一个整数:"))ifx==m:print("恭喜,猜对了,一共猜了{}次".format(i))breakelifm<x:print("猜小了")else:print("猜大了")ifi==3:print("游戏结束")3.5实例:控制结构灵活运用3.5.3

求1到100之间的素数【例3.8】求1到100之间的素数,程序如下。#求1--100之间的素数importmathforiinrange(2,101):n=int(math.sqrt(i))+1forjinrange(2,n):

ifi%j==0:breakelse:print(i,end="")#求1--100之间的素数foriinrange(2,101):forjinrange(2,i):ifi%j==0:breakelse:print(i,end="")小结通过本章的学习,我们需要掌握的知识点包括:程序控制的三种基本结构是顺序结构、选择结构、循环结构;选择结构包括单分支语句、双分支语句和多分支语句,多分支语句中的elif可看作elseif的意思;循环结构包括for循环和while循环,应用时优先考虑for循环;for循环和while循环都可以带有else子句;break语句和continue语句在循环中的应用。上机实践1.使用turtle库的turtle.circle()函数、turtle.seth()函数和turtle.left()函数绘制一个四瓣花图形,效果如图3-

温馨提示

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

评论

0/150

提交评论