版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Python应用程序设计》课程简介单元1Python程序基础单元2Python的控制结构单元3数据类型单元4函数和模块单元5面向对象编程单元6文件与文件系统操作单元7数据库操作单元8Python的第三方库课程定位1课程资源2课程考核3目录课程定位——课程性质1课程定位——课程性质1课程定位——课程性质1课程定位——课程性质1通过本课程的学习,会使用Python语言进行软件开发、数据处理和自动化测试等,为学生后续的专业发展奠定一定的基础。C语言程序设计SQLServer数据库技术Python应用程序设计软件项目综合实训毕业设计课程定位——课程目标1知识目标掌握Python的编程规范;熟练掌握Python的数据结构;理解面向对象的概念和思想方法;掌握文件的读写操作。能力目标能识读、编写简单的Python程序;能够调试和测试Python程序;能够使用Python解决一般的应用问题;能使用Python进行数据处理和分析。素质目标培养学生团队协作精神和沟通能力;培养学生的问题解决能力;提高学生的逻辑思维与分析能力。课程资源2配套教程菜鸟教程课程资源2配套教程在线课程课程考核3THANKYOU《Python应用程序设计》1.1部署Python开发环境Python简介1Python语言的特点2Python的应用领域3目录常用的开发环境4
Python简介1Python的英文含义是大蟒蛇,之所以选Python作为编程语言的名字,是因为它的创始人吉多•范罗苏姆(GuidovanRossum)非常喜欢观看英国20世纪70年代首播的喜剧电视剧《蒙提•派森干的飞行马戏团》(MontyPython’sFlyingCircus)。Python为编程人员提供了非常强大的标准库,这些标准库的内容覆盖了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等大量内容;Python社区还提供了大量的第三方库,因而被称为胶水语言。
Python语言的特点2(1)开源、跨平台、功能强大(2)代码规范,易于学习(3)易于阅读,容易维护(4)丰富的标准库,兼容性好,功能强大(5)解释性语言,互动性强(6)可移植性强,可扩展性好
Python的应用领域3(1)数据分析与处理(2)网络爬虫(3)Web应用开发(4)人工智能(5)游戏开发(6)自动化测试常用的开发环境41.Python集成开发环境IDLE是Python自带的集成开发环境,它虽然功能简捷,但是可以让开发者掌握开发的全过程,因而深受Python开发者的喜爱,也是Python开发人员修炼内功的重要途径,全国计算机等级考试二级Python目前就采用该环境作为考试环境。常用的开发环境42.
Anaconda3开发环境
Anaconda3对于初学者来说更强大,使用起来也更加方便,因此得到了广大Python初学者的偏爱。并且由于Anaconda3集成了大量的第三方库,受到了科研人员的推崇。它是目前比较流行的Python开发环境之一,自带Python解释器,包括JupiterNoteBook和Spyder两种集成开发环境。常用的开发环境43.
Pycharm开发环境
PyCharm是一种专门为Python语言开发的IDE,它可以帮助开发人员提高程序开发的效率,具有项目管理、调试、语法高亮、代码跳转、智能提示、自动完成、单元测试、版本控制等功能,还可以用于支持Django框架下的专业Web开发。THANKYOU《Python应用程序设计》1.2初识Python程序Python集成开发环境的使用1Python的注释2Python程序的风格3目录
Python集成开发环境的使用11.交互式的执行Python程序“>>>”是IDLE的命令提示符
Python集成开发环境的使用12.文件方式执行Python程序使用File->NewFile命令,或者使用快捷键Ctrl+N来创建程序
Python集成开发环境的使用12.文件方式执行Python程序使用Run菜单中命令RunModule,或者快捷键F5来运行程序
Python集成开发环境的使用1快捷键说明Ctrl+Q退出IDLEShell或者IDLE编辑器F5在编辑器中执行Python程序ALT+3在编辑器中注释选定区域文本ALT+4在编辑器中取消对选定区域文本的注释ALT+Q在编辑器中对Python代码进行格式化布局CRTL+]在编辑器中增加缩进CRTL+[在编辑器中减少缩进表1IDLE常用的快捷键
Python的注释2单行注释Python编程语言的单行注释常以#开头,单行注释可以作为单独的一行放在被注释代码行之上,也可以放在语句或者语句之后。
Python的注释2多行注释Python中可以使用成对的三个单引号(''')或者三个双引号(""")来进行多行注释。
Python程序的风格3Python中最具特色的就是使用缩进来表示代码块,而不像Java等其他编程语言那样使用一对大括号{}。缩进可以使用Tab键实现,也可以使用多个空格(一般是4个空格)实现。缩进可以清晰地表示程序间的包含和层次关系。
Python程序的风格3任务学习【计算某数的平方根】本程序的功能主要是通过用户输入一个数字,并计算这个数字的平方根。请为下面的代码调试错误,并且查找相关资料为程序写上注释。任务学习【计算某数的平方根】本程序的功能主要是通过用户输入一个数字,并计算这个数字的平方根。请为下面的代码调试错误,并且查找相关资料为程序写上注释。拓展任务【程序改错】输出互不相同且无重复数字的三位数。THANKYOU《Python应用程序设计》1.3变量、运算符及输入输出变量1运算符2输入输出3目录变量1常量常量是指在程序中不改变的数据,例如数值常量3.14表示圆周率,字符串常量“李四”表示学生姓名,逻辑常量True和False等。变量变量与常量相对,是指值可以发生变化的量。变量变量的类型也可以根据需要进行变化。变量1变量命名规则变量名可以由字母、数字、下划线和汉字等字符组成,但是不能以数字开头变量名不能包含空格和标点符号变量名命名要有一定的意义,如果有多个单词组成,建议使用下划线来分隔单词变量名对英文字母的大小写敏感。变量1变量命名规则不要将Python关键字(keyword)和函数名用作变量名,如使用class命名变量。查看关键字可以导入keyword模块,并使用kwlist方法变量1算术运算符算术运算符用来完成对象的加、减、乘、除、取模等算术运算。假如有两个变量a和b,其中a的值为3,b的值为2运算符2运算符功能说明实例+加,两个对象的和a+b输出结果5-减,两个对象的差a-b输出结果1*乘,两个对象的积a*b输出结果6/除,两个对象的商a/b输出结果1.5%取模,两个对象的余数a%b输出结果1**幂,返回x的y次幂a**b为3的2次方,输出结果9//整除,向下取接近除数的整数a//b为a/b的整数的商,输出结果为1表1Python中的算术运算符比较运算符比较运算符用来完成对象的比较运算,这里的对象可以是数值、字符以及集合等。假如有两个集合,分别为set_a和set_b,a的元素为{1,2,3,4},b的元素为{1,2,3}运算符2表2Python中的比较运算符运算符功能说明实例==等于,比较两个对象是否相等(a==b)返回False!=不等于,比较两个对象是否不相等(a!=b)返回True>
大于,返回对象a是否大于对象b(a>b)返回True<
小于,返回对象a是否小于对象b(a<b)返回False>=大于等于,返回对象a是否大于等于b(a>=b)返回True<=小于等于,返回对象a是否小于等于b(a<=b)返回False逻辑运算符逻辑运算符可以连接表达式从而构成更加复杂的条件表达式。假如有两个变量a和b,其中a的值为True,b的值为False。运算符2表3Python中的逻辑运算符运算符功能说明实例not逻辑"非",取反操作。如果对象为True,返回False;反之则返回False。nota返回Falseand逻辑"与",双元运算,只有当两个对象同时为True的时候才返回True。(aandb)返回Falseor逻辑"或",双元运算,至少一个对象为True的时候返回True,当两个对象都不为True的时候返回False。(aorb)返回True逻辑运算符(1)表示能被2和5同时整除的表达式(n%2==0)and(n%5==0)(2)表示能被2或者被5整除的表达式(n%2==0)or(n%5==0)(3)既不能被2也不能被5整除的表达式not((n%2==0)or(n%5==0))运算符2成员运算符成员运算符用于一个对象是否包含在另外一个对象中,这里的对象可以是字符串、集合、序列、元组等。假如有两个字符串a和b,其中a的值为“to”,b的值为“WelcometoP”。运算符2表4Python中的成员运算符运算符功能说明实例in如果在指定的对象中找到值返回True,否则返回False。(ainb)返回Truenotin如果在指定的对象中没有找到值返回True,否则返回False。(anotinb)返回FalseTHANKYOU《Python应用程序设计》1.4程序发布pip包管理工具1第三方库的安装2PyInstaller库及程序发布3目录
pip包管理工具1pip是Python的包管理工具,在Python开发中必不可少,该工具提供了对Python第三方库的查找、下载、安装、卸载的功能。可以在cmd命令行方式中通过pip--version命令来判断是否已安装。
pip包管理工具1常用的pip命令见表所示。pip命令功能pipinstallPackageName[==version]在线安装指定版本的第三方库pipinstallPackageName.whl离线安装第三方库pipinstall--upgradePackageName在线升级第三方库pipuninstallPackageName[==version]卸载指定版本的第三方库piplist列出系统中已经安装的第三方库pipdownloadPackageName可以下载第三方库的安装包pipshowPackageName列出指定第三方库的详细信息pipsearchPackageName联网搜索第三方库piphelp列出pip所有的命令表常见的pip命令
pip包管理工具1在cmd命令行方式中输入“piphelp”,则显示所有的pip命令。
pip包管理工具1可以使用“piplist”命令查看Python中已经安装的包。第三方库的安装21.在线安装如果网络条件许可,推荐使用在线安装的方式。安装命令的格式为:pipinstall<PackageName>例如:安装Pandas第三方库的界面如下所示。第三方库的安装22.离线安装如果网络条件比较差,也可以提前下载第三方库的源文件,进行离线安装。假定下载的文件numpy安装文件存放在D:\numpy文件夹中。
PyInstaller库及程序发布3PyInstaller是一个十分有用的Python第三方库,它能够完成程序发布的工作,使程序可以在没有Python环境的计算机中运行程序。PyInstaller需要在命令行下用pip工具安装,该命令会自动将PyInstaller库安装在Python的Scripts文件夹中,命令为:pipinstallPyInstaller
PyInstaller库及程序发布3PyInstaller命令常用的参数见表所示。参数功能F,-onefile生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包在该文件中D,-onedir生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录中icon=<File.ico>将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标可以写成:h,--helppyinstaller-iico路径xxxxx.pyd,-debug查看帮助--clean产生debug版本的可执行文件表PyInstaller命令常用的参数THANKYOU《Python应用程序设计》2.1程序的控制结构程序流程图的基本符号1程序的三种控制结构2目录
程序流程图的基本符合11.起止框使用圆角矩形表示,表示程序的开始或结束。
2.判断框使用菱形表示,表示判断条件,并会根据判断条件的真与假选择不同的执行路径。
3.处理框使用矩形表示,表示一组处理过程。
4.输入/输出框使用平行四边形表示,表示数据的输入或结果的输出。
5.流向线使用带箭头的直线或曲线表示,表示程序的执行路径。
程序的三种控制结构2(1)顺序结构(2)分支结构(3)循环结构
程序的三种控制结构2(1)顺序结构顺序结构是按照线性方式依次执行相关步骤的过程。A、B、C分别表示程序中的某个步骤,每个步骤之间有先后次序,并且是顺序执行,不会跳过某个步骤,也不会重复执行某个步骤。
程序的三种控制结构2(2)分支结构分支结构是程序根据不同的判断结果选择不同路径执行程序的过程。分支结构还可以细分为单分支结构、二分支结构和多分支结构。P代表条件,A、B分别表示条件满足和不满足的情况下执行的步骤。分支结构会根据不同的判断结果执行相应语句,因此某些语句会因为不符合条件而执行不到,比如符合条件P则语句B执行不到。
程序的三种控制结构2(3)循环结构循环结构是根据循环条件满足与否而决定是否反复执行程序的过程。一般运行完一轮后,循环控制条件会改变,从而使循环能够正常结束,否则就变成死循环,这不是我们期待的结果。任务学习【绘制判断某数是否为质数的程序流程图】使用Visio软件绘制程序流程图,程序的功能是判断某个大于2的数是否为质数。质数(primenumber)又称为素数,有无限多个。质数定义是大于1的自然数中除了1和它本身以外不会再有其他因数的数称为质数。判断某数是否为质数的一般思路为:若一个数n能被2和该数平方根向下取整之间的数整除(取余为0),则可判断n不是质数;若这个数不能被从2到该数平方根向下取整的所有数整除,则为质数。
任务学习【绘制判断某数是否为质数的程序流程图】拓展任务【绘制某年份是否为闰年的程序流程图】使用Visio软件绘制程序流程图,程序的功能是判断某个年份是否为闰年。
THANKYOU《Python应用程序设计》2.2顺序结构目录turtle库概述1random库与随机数2常用内置函数的用法3
turtle库概述1Turtle图形绘制的理念诞生在1969年,成功应用于LOGO编程语言。Turtle(海龟)是Python语言中绘制图像的标准库。请读者想象一只小乌龟,在一个横轴为x、纵轴为y的坐标系原点,从(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中“前进”、“后退”、“旋转”等运动,它爬行的轨迹形成了绘制图形。
turtle库概述11.窗体函数
窗体就是turtle用于绘图的区域,通过命令可以为它设置大小、位置、颜色等属性。函数功能screensize(width,height,bg)设置窗体大小setup(width,height,startx,starty)设置窗体的位置bgcolor(bg)设置窗体背景颜色clear()清除窗体的内容表1Python中常用的窗体函数
turtle库概述12.画笔函数
画笔函数主要对画笔的状态、颜色、填充等属性进行设置。表2Python中常用的画笔函数函数功能pendown()落下画笔penup()提起画笔pensize(width=None)设置画笔的宽度pencolor(*args)设置画笔颜色fillcolor(*args)设置画笔的填充色begin_fill()填充图形前调用方法end_fill()填充图形后调用方法speed(speed)设置画笔移动速度,画笔绘制的速度范围[0,10]整数
turtle库概述13.海龟状态函数海龟状态函数可以设置海龟的出现、隐藏、图形等属性。表3海龟状态函数函数功能showturtle()显示海龟hideturtle()隐藏海龟isvisible()海龟是否可见shape(name)设置海龟的形状,包括:“arrow”,“turtle”,“circle”,“square”,“triangle”,“classic”等
turtle库概述14.海龟运动函数Turtle通过函数控制画笔的运动,从而绘制出各种不同的形状。表4turtle库的运动函数函数功能forward(distance)沿着当前画笔方向移动指定距离backward(distance)沿着当前画笔的相反方向移动指定距离right(angle)顺时针旋转angle角度left(angle)逆时针旋转angle角度goto(x,y)移动到坐标为(x,y)的位置circle(radius,extent,steps)画圆/弧/内切正多边形,radius为半径,extent决定绘制哪部分圆,steps表示多边形的边数
turtle库概述14.海龟运动函数Turtle通过函数控制画笔的运动,从而绘制出各种不同的形状。表4续
turtle库的运动函数函数功能setx()将当前x轴移动到指定位置sety()将当前y轴移动到指定位置setheading(angle)设置当前朝向为angle角度home()设置当前画笔位置为原点dot(size,color)绘制一个指定直径和颜色的圆点speed(speed)设置画笔移动速度,speed的取值为[0,10]的整数,数字越大则画笔移动速度越快
random库与随机数2Python语言与其他语言类似,可以通过随机数种子生成随机数。每个种子利用算法生成一系列的随机数,从而构成伪随机序列。设置随机数种子的好处在于可以准确地复现随机数序列,用于重复程序的运行轨迹。如果没有指定随机数种子,默认使用系统当前的时间为种子产生随机序列。
random库与随机数2random库的常用函数有randint()、uniform()、random()、shuffle()等。表5random库的常用函数函数功能seed(a=none)初始化随机数种子,默认为当前系统时间random生成的一个范围为[0,1)的小数randint(a,b)生成一个范围为[a,b]的整数randrange(start,stop[,step])生成一个范围为[start,stop]且步长为step的随机整数uniform生成一个范围为[a,b]的小数choice(seq)从序列类型中随机返回一个元素shuffle(seq)将序列类型中的元素随机排列并返回序列
常用内置函数的用法3内置函数不需要额外导入任何模块即可直接使用,具有非常快的速度。可以使用dir(__builtins__)命令查看内置函数(注意在builtins的左、右两侧是两条下划线)。
常用内置函数的用法31.数学函数
(1)abs(num):返回num的绝对值。
(2)max(num1,num2,...,numn):返回给定参数的最大值。
(3)min(num1,num2,...,numn):返回给定参数的最小值。
(4)pow(x,y):求x的y次方,即x^y。
(5)round(num,n):四舍五入。
(6)divmod(num1,num2):取模。
(7)len(list):返回序列长度。
常用内置函数的用法32.类型转换
(1)int(x):转换为int型。
(2)float(x):转换为float型。
(3)str(x):转换为字符类型。
(4)list(x):转换为列表类型。
(5)set(x):转换为集合类型。
常用内置函数的用法33.相关操作
(1)eval():将字符串转成有效的表达式来求值或者计算结果。
(2)type():返回一个对象的类型。
(3)id():返回一个对象的唯一标识值。
(4)exec():执行Python语句。
(5)help():调用系统内置的帮助系统。
(6)hash():返回一个对象的hash值。
(7)isinstance():判断一个对象是否为该类的一个实例。
(8)issubclass():判断一个类是否为另一个类的子类。
常用内置函数的用法33.相关操作
(9)globals():返回当前全局变量的字典。
(10)reversed():生成一个反转序列的迭代器。
(11)range():返回的是一个可迭代对象(类型是对象)。
任务学习【绘制等边三角形】使用Python的内置库turtle绘制等边三角形。
拓展任务【绘制正方形】绘制如下图所示的正方形。
THANKYOU《Python应用程序设计》2.3分支结构目录if单分支结构1if-else二分支结构2if-elif-else多分支结构3if嵌套4
if单分支结构1Python单分支结构主要使用if保留字对条件进行判断,其基本格式如下:if<表达式>:
<语句块>
<语句a>1个Tab
if单分支结构1举例:#输出a,b中的较大值a=input('请输入a的值:')b=input('请输入b的值:')ifa<b:
a,b=b,aprint(a)
if-else二分支结构2Python二分支结构主要使用if-else对条件进行判断,其基本格式如下:if<表达式>:
<语句块1>
else:
<语句块2><语句a>1个Tab
if-else二分支结构2举例:#输出a,b中的较大值a=input('请输入a的值:')b=input('请输入b的值:')ifa<b:
print(b)else: print(a)
if-elif-else多分支结构3Python多分支结构主要使用if-elif-else对条件进行判断,其基本格式如下:if<表达式1>:
<语句块1>
elif<表达式2>:
<语句块2>……else:
<语句块n><语句a>1个Tab
if-elif-else多分支结构3举例:#百分制转成五分制score=eval(input('请输入一个百分制成绩:'))ifscore>=90:
grade='A'elifscore>=80:
grade='B'elifscore>=70:
grade='C'elifscore>=60:
grade='D'else:
grade='E'print('对应的五分制成绩是:{}'.format(grade))
if嵌套4if嵌套是指在if、elif或者else子句中嵌入if、if-else或if-elif-else语句。嵌套的方式多种多样,以其中一种嵌套为例,格式为:
if<表达式1>:
if<表达式2>:
<语句块1>
elif<表达式3>:
<语句块2> else:
<语句块n>else:
<语句块n><语句a>1个Tab1个Tab
if嵌套4举例:#输入3个数作为三角形的3条边长a=eval(input("输入第一条边长:"))b=eval(input("输入第二条边长:"))c=eval(input("输入第三条边长:"))if(a>0)and(b>0)and(c>0):
if(a+b>c)and(a+c>b)and(b+c>a):
if(a==b)and(a==c):
print("等边三角形")
elif(a==b)or(b==c)or(a==c):
print("等腰三角形")
else:
print("一般三角形")
else:
print("非三角形")else:
print("输入的边长边长不正确,程序终止。")任务学习【猜数字游戏】系统随机生成一个1至100之间的整数,用户输入所猜的整数。对系统生成的值和用户输入的值进行比较,分别输出结果“猜大了”“猜小了”或“猜对了”。拓展任务【计算身体质量指数】BMI指数(即身体质量指数,简称体质指数,又称体重,英文为BodyMassIndex,BMI),是用体重千克数除以身高(米)的平方得出的数字。计算公式为:体质指数(BMI)=体重(kg)÷[身高×身高(m)]成人的BMI数值:过轻:低于18.5
正常:18.5~23.9
过重:24~27
肥胖:高于28
THANKYOU《Python应用程序设计》2.4循环结构目录while循环1for循环2循环嵌套3循环相关的其他语句4
while循环1基本格式如下:while<表达式>:
<语句块>
<语句a>1个Tab循环条件循环体
while循环1举例:#完成10遍“computer”输出i=1whilei<=10:
print("第",i,"遍computer")
i+=1print("循环已结束")执行顺序是:
①i赋值为1。
②判断循环条件i<=10是否为真,成立执行第③;不成立跳到第⑥。
③打印第i遍“computer”。
④i自增1。
⑤回到第②。
⑥打印“循环已结束”。
while循环1死循环:while语句的循环表达式一般是关系表达式或逻辑表达式。在表达式永远成立的情况下,会陷入无限循环,也叫死循环。i=1whileTrue:
print("第",i,"遍computer")
i+=1print("循环已结束")i=1whileTrue:
print("第",i,"遍computer")
i+=1
ifi>10:
break #跳出循环print(“打印结束")条件永远成立陷入死循环增加条件分支跳出循环
while循环1举例:使用while语句循环求1~100的整数的和5050。sum=0i=1whilei<=100:
sum=sum+i
#完成累加
i=i+1print(sum)当i=1时,i<=100成立,sum=0+1;当i=2时,i<=100成立,sum=0+1+2;当i=3时,i<=100成立,sum=0+1+2+3;……当i=100时,i<=100成立,sum=0+1+2+3+……+100;当i=101时,i<=100不成立,则退出循环。
for循环2for循环可以用于遍历任何序列,比如数组、列表、字符串等,它的基本格式如下:
for<循环变量>in<序列>:
<语句块><语句a>1个Tab
for循环2举例:#遍历数组foriin['H','e','l','l','o','W','o','r','l','d']:
print(i,end='')
#遍历序列foriinrange(1,101): #range()产生[1,101)的整数序列
print(i)
#输出100以内既能被3整除又能被7整除的正整数foriinrange(1,101):
ifi%3==0andi%7==0:
print(i)
循环嵌套3在程序开发过程中,有时会需要在一个循环体内再出现循环,即循环的嵌套。Python中允许在一个循环体内嵌入另一个循环,可以是for循环嵌套,或者while循环嵌套,也可以是for循环与while交叉嵌套。
循环嵌套3其基本格式如下:for<循环变量1>in<序列1>:
for<循环变量2>in<序列2>:
<循环语句块2>
<循环语句块1>
<语句a>1个Tab1个Tab内循环循环体外循环循环体
循环嵌套3举例:打印10*10方阵foriinrange(10):
#控制行 forjinrange(10):
#控制列 print('*',end='')
#打印*(以空格结尾) print('')
#控制换行执行顺序为:
①产生0~9的整数序列1,赋i初值为0;
②产生0~9的整数序列2,赋j初值为0;
③打印*(以空格为结尾);
④j赋值为序列2的下一个值,回到第③步;直到j遍历完序列2(打印1行10列);
⑤打印空字符完成换行;
⑥i赋值为序列1的下一个值,回到第②步;直到i遍历完序列1(打印10行10列)。
循环嵌套3举例:输出九九乘法表foriinrange(1,10): forjinrange(1,i+1):
print('{}*{}={}'.format(i,j,i*j),end='')
print('')上述代码的执行顺序与10*10方阵的顺序一致,只是内层循环的次数受外层循环变量值的影响不同。外层循环变量i的值分别为1~9,则内层循环的循环次数也分别为1~9,因此呈现三角形形式的输出。
循环相关的其他语句41.break语句:用于跳出循环,即使循环表达式没有不成立或序列没有被遍历完,也会停止循环语句。#输出序列中第一个能被5整除的数ls=[2,3,8,10,17,21,25,36]foriinls:
print("循环遍历到",i,end="")
ifi%5==0:
print("第一个整除5的数为:",i)
break
print("本次遍历结束")print("循环已结束")举例:!注意:break语句仅终止当前循环。在循环嵌套时,break语句结束当前循环后,外层循环仍需继续执行。
循环相关的其他语句42.continue语句:用于结束本次循环。与break的不同之处是,使用break时该循环被终止,即退出循环;而使用continue时,仅仅是退出本次循环,接下来还要执行下一次循环。#输出序列中所有能被5整除的数ls=[2,3,8,10,17,21,25,36]foriinls: print("循环遍历到",i,end="") ifi%5==0: print("整除5的数为:",i)
continue
print("本次遍历结束")print("循环已结束")举例:
循环相关的其他语句43.pass语句:Python中的空语句,不做任何事情,只是作为占位符,使得程序结构完整。
#输出Python的每个字母forletterin'Python': ifletter=='h':
pass
print('这是pass块')
print('当前字母:',letter)举例:
循环相关的其他语句44.else语句:else语句除了与if一起使用外,还可以与while和for循环的语句一起使用。循环中的else语句只在循环正常完成后执行,即如果执行到break跳出循环的话就不会执行该语句。target=input('请输入一个字符:')
i=0
ls=['a','b','c','d']
whilei<len(ls):
ifls[i]==target:
break
i=i+1
else:
i=-1
print(i)举例:请输入一个字符:a
0请输入一个字符:d
3请输入一个字符:f
-1
执行结果:任务学习【判断某数是否为质数】输入一个大于2的自然数,判断是否为质数。
拓展任务【输出100以为所有的质数】这里需要遍历100以内的正整数,并分别判断这个数是否能被2和该数平方根向下取整之间的数整除。所以可以使用外层循环产生100以内的每个正整数,在内层循环中判断每个正整数是否为质数,如果为质数则打印。
拓展任务【绘制雪景】计算机可以使用随机函数和海龟库来进行艺术绘图,比如下面的雪景,如图所示。
THANKYOU《Python应用程序设计》2.5程序单步调试目录IDLE的Debug模式1Debug模式调试代码2
IDLE的Debug模式1IDLE集成了Python的解释器、编译器和调试器。调试器可以在代码运行过程中实时查看变量的值,便于程序员找到代码的错误位置。对于初学者来说,调试器也可以帮助我们查看代码执行的顺序及执行过程中变量的变化,促进对程序代码的理解。
IDLE的Debug模式1DebugControl窗口五个按钮功能如下:
Go按钮:单击Go按钮会导致程序直接执行至终止或到达一个断点。Step按钮:单击Step按钮则执行下一行代码,并再次暂停。Over按钮:与Step类似,但是如果下一行代码是函数调用,则跳过该函数代码,直接执行到该函数返回。Out按钮:单击Out按钮将全速执行代码行,直到当前函数返回。Quit按钮:单击Quit按钮则马上终止该程序。
IDLE的Debug模式1另外还有Stack、Locals、Globals和Source复选框分别对应执行代码堆栈、局部变量、全局变量、源代码是否显示。
Debug模式调试代码2以while循环求1~100的整数的和为例,使用Debug模式查看每步代码执行结果的变化。
sum=0i=1whilei<=100: sum=sum+i #完成累加 i=i+1print(sum)
Debug模式调试代码2步骤:(1)通过单击PythonShell窗口的“Debug”→“Debugger”菜单,打开DebugControl窗口。此时Pythonshell窗口显示[DEBUGON]状态。
(2)在while循环求和的代码文件的窗口上选择“Run”→“RunModule”,开始程序调试。此时DebugControl窗口显示出该代码文件的基本信息,Stack栏目内蓝色底纹的代码line1:sum=0是即将要执行的代码,如右图所示。
Debug模式调试代码2步骤:
(3)按下Step按钮。此时Locals栏目内增加了变量sum和它的初值0,即执行完第1行代码sum=0后的结果;Stack栏目内即将执行下一行代码:line2:i=1,如右图所示。
Debug模式调试代码2步骤:
(4)按下Step按钮。Locals栏目内再增加变量i,i和sum的值分别为1和0,即执行完第2行代码i=1后的结果;Stack栏目内即将执行下一行代码:line3:while<=100。
(5)重复Step按钮。可以发现即将执行代码一直在sum=sum+i、i=i+1和while<=100这3行代码上来回循环;i与sum的值也随之实时变化。
(6)按下Out按钮,则结束单步调试,在PythonShell窗口内执行输出和值为“5050”。而DebugControl窗口的按钮不能再使用了。任务学习【解决鸡兔同笼问题】经典的鸡兔同笼问题如下:鸡与兔共有35头、94足,问笼子里有鸡和兔子分别多少只?
写出代码,并单步调试。
拓展任务【输出直角三角形】输出如图2-44所示的直角三角形,并使用单步调试查看运行过程。
THANKYOU《Python应用程序设计》2.6异常处理结构目录异常与异常类1异常处理2抛出异常3
异常与异常类1程序在执行过程中产生的错误称为异常。对于初学者来说,很多异常表现为运行代码时,未成功得到结果,却显示红色的错误信息,如在输出变量时没有定义变量,做数学运算的时候不能将0作为除数,如下图所示。
异常与异常类1在Python中,所有的异常都是Exception的子类,定义在exceptions模块中,我们可以直接使用。常见的异常类有以下几种。NameErrorZeroDivisionErrorSyntaxErrorIndexErrorFileNotFoundError
异常处理21.捕获单个异常其基本语法格式为:try:
<语句块>except异常名称:
<异常处理代码>1个Tab异常处理2举例:#除数为零的异常处理try: num1=input("请输入除数:") num2=input("请输入被除数:") print(int(num2)/int(num1))exceptZeroDivisionError:
print("除数不能为0")
异常处理22.捕获多个异常其基本语法格式为:try:
<语句块>except异常名称1:
<异常1处理代码>except异常名称2:
<异常2处理代码>……1个Tab异常处理2举例:#除数为零与非数字的异常处理try:
num1=input("请输入除数:")
num2=input("请输入被除数:")
print(int(num2)/int(num1))exceptZeroDivisionError:
print("除数不能为0")exceptValueError:
print("除数和被除数只能为数字")
异常处理22.捕获多个异常如果多个不同的异常使用相同的处理代码,还可合并为一个except语句,后面跟异常名,语法格式为:
except(异常名称1,异常名称2):
异常处理23.捕获所有异常其基本语法格式为:try:
<语句块>except:
<异常处理代码>1个Tab表示try语句中的代码出现了任何异常,都执行except语句,即不指明异常类型的处理方式。
异常处理23.捕获所有异常try: num1=input("请输入除数:") num2=input("请输入被除数:") print(int(num2)/int(num))exceptExceptionasresult: print("捕获到的异常:%s"%result)但是这种情况,所有异常采用相同的处理方式后,导致分不清产生了何异常。这时候可以采用输出捕获异常的消息来进行区分。
异常处理24.没有捕获异常与终止行为异常处理机制中的else分支:它表示如果try语句没有捕获到任何错误信息,就不会执行任何except语句,而是执行else语句。异常处理机制中的finally分支:无论是否捕捉到异常,都要执行一些终止行为,如文件关闭、释放锁等,这时可以使用finally语句进行处理。
异常处理24.没有捕获异常与终止行为
其基本语法格式为:try:
<语句块>exceptA:
<异常A处理代码>except:
<其他异常处理代码>else:
<没有异常处理代码>finally:
<最终必须处理的代码>注意:
(1)except必须在exceptA后面;
(2)else与finally都是可选项;
(3)如果else存在,则必须存在except或exceptA,且else在它们的后面;
(4)finally必须在else的后面。异常处理2举例:#异常处理try: num1=input("请输入除数:") num2=input("请输入被除数:")
print(int(num2)/int(num1))exceptZeroDivisionError:
print("除数不能为0")exceptValueError: print("除数和被除数只能为数字")exceptExceptionasresult: print("捕获到的异常:%s"%result)else:
print("没有出现错误!")finally: print("程序执行结束")
抛出异常31.使用类名引发异常
抛出异常32.使用异常类的实例引发异常
抛出异常33.异常传递不带任何参数的raise语句,可以再次引发刚刚发生过的异常,作用是向外传递异常。比如在try子句中使用raise隐式抛出异常后,在except子句中使用不带参数的raise语句,就可以再次引发刚刚发生的异常。
抛出异常34.指定异常的描述信息
抛出异常35.异常引发异常
任务学习【异常处理】对两数除法运算的程序增加异常处理,如果出现异常则打印异常信息;如果没有异常则打印“没有出现错误!”;程序结束时打印“try语句执行结束”。拓展任务【异常处理完善】对上面的任务进行完善,利用循环方式重复输入过程,直到用户输入正确并返回两数的商,如图所示。THANKYOU《Python应用程序设计》3.1数字类型数字类型概述1数值处理函数2目录数字类型概述1Python有三种数字类型,分别是整数类型、浮点数类型和复数类型。例如某学生的年龄23为整数类型,他所学课程《Python程序设计基础》的成绩94.5为浮点数类型,而2+3j则是一个复数类型。数字类型概述11.整数类型整数类型简称整型,英文使用int表示,它表示整数。整型在Python中的取值范围没有限制,可以表示任意大的整数。它有四种进制,分别是十进制、二进制、八进制和十六进制。数字类型概述11.整数类型进制种类进制符号说明十进制无默认进制二进制
0b或0B由字符0、1组成八进制
0o或0O由字符0到7组成十六进制
0x或0X由字符0到9、a到f或A到F组成表1整型的4种进制表示数字类型概述12.浮点数类型浮点数类型简称浮点型,英文使用float表示,主要用来表示实数。Python中的浮点型必须带有小数部分,小数部分可以为0。浮点数有两种表示方法:十进制表示法和科学计数法表示。Python中的浮点数运算中有个不确定尾数的问题,即两个浮点数运算,有一定的概率会在运算结果后增加不确定的尾数。数字类型概述13.复数类型复数类型用来表示数据中的复数,英文使用complex表示。复数由两部分组成,分别是实数部分(real)和虚数部分(imag),可以表示为real+imagj。其中的j(或者J)被称作虚数单位,它是复数的基本特征。复数类型中的实数部分和虚数部分都是浮点类型,需要注意的是,当复数的虚部为1时1不能被省略,即1j表示复数,而省略后的j只能用来表示一个变量。数值处理函数2函数说明
abs(x)返回数字x的绝对值divmod(x,y)返回一个包含商和余数的元组(x//y,x%y)pow(x,y)返回x的y次方的值round(x[,n])返回浮点数x的四舍五入值max(x,y,z,...)返回给定参数的最大值min(x,y,z,...)返回给定参数的最小值Python中有一些内置函数,可以对数字类型的数据进行处理。表2数值处理的内置函数任务描述任务名称:输出1000以内的水仙花数所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33,本任务需要输出1000以内的水仙花数。拓展任务任务名称:求解一元二次方程的根已知参数一元二次方程的系数为a、b、c,编写函数返回方程的根。THANKYOU《Python应用程序设计》3.2字符串类型字符串概述1字符串的基本操作2目录字符串处理函数3字符串处理方法4字符串概述1计算机程序需要处理的文本信息使用字符串表示,在Python中字符串分为单行字符串和多行字符串两种。前者使用一对单引号(‘)或者一对双引号(″)作为定界符,而后者使用一对三个单引号(’‘’)或者三个双引号(″″″)作为定界符,不同的定界符之间还可以互相嵌套。字符串概述1Python中较常用的转义字符。转义字符描述\(在行尾时)续行符\\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\e转义表1Python常用的转义字符字符串概述1续表1Python常用的转义字符转义字符描述\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数yy代表的字符,例如:\o12代表换行\xyy十进制数yy代表的字符,例如:\x0a代表换行\other其他的字符以普通格式输出字符串的基本操作2对于字符串,Python提供了以下几种常用的操作。操作符描述+字符串连接%字符串的格式化*重复输出字符串[]通过索引获取字符串中字符in成员运算符,如果字符串中包含给定的字符返回True,否则返回Falsenotin成员运算符,如果字符串中不包含给定的字符返回True,否则返回False表2字符串常用的操作字符串的基本操作21.字符串连接不同于数字类型的“+”能计算出结果,“+”可以使得两个字符串进行连接。2.字符串的格式化%可以来实现格式化字符的输出,有时也来实现字符串的连接。3.重复输出字符串*可以用来完成字符串的重复输出。字符串的基本操作24.字符串的切片字符串在内存中存放的时候是以字符数组的形式存放的,对字符串中某个字符的检索使用索引。它的序号有两种编号体系:正向递增序号和反向递减序号。字符串的基本操作24.字符串的切片要取出字符串的子字符串可以使用字符串的切片操作(slice)。格式为:
<字符串或字符串常量>[[start]:[end][:step]]三个参数均为可选项,start和end分别表示选取的子串的开始和结束,遵循左闭右开的原则,step表示选取子串时候的步长,step的默认值为1。字符串处理函数3Python为字符串处理提供了许多内置函数。函数功能chr(i)返回当前整数对应的Unicode字符,i可以是十进制也可以是十六进制的形式,并且i是位于0-255之间的整数ord(c)是chr()函数的配对函数,返回对应的Unicode的十进制整数,c是单字符bin(i)将十进制数转换成二进制数,i是十进制的整数oct(i)将十进制整数转换成八进制,以小写形式字符串形式表示,i是十进制的整数hex(i)将十进制整数转换成十六进制,以小写形式字符串形式表示,i是十进制的整数len(s)返回字符串的长度,中英文字符和标点都是1个长度单位format()通过{}和:来代替以前的%进行字符串的格式化表3常用的字符串处理函数字符串处理函数31.chr()函数chr()函数的返回值是i对应的Unicode字符,参数i的取值范围是0~255的整数。字符串处理函数32.ord()函数该函数是chr()函数的配对函数,参数c为单字符,也即长度为1的字符串。函数的返回值是字符c对应的Unicode数值。字符串处理函数33.进制转换函数进制转换函数包括bin()、oct()和hex()等,分别可以将十进制数转换成二进制、八进制和十六进制数。字符串处理函数34.len()函数该函数可以返回字符串的长度。字符串处理函数35.format()函数字符串的函数str.format(),它增强了字符串格式化的功能。它的基本思路是通过{}和:来代替以前的%。format函数可以接受不限个参数,位置可以不按顺序。其基本格式为:print(<输出字符串模板>.format(<变量1>,<变量2>,……<变量n>)字符串处理函数35.format()函数字符串模板中使用{}表示槽位置,每个槽位置对应.format()中的一个变量。字符串处理方法41.查找方法find()该方法可以来检测字符串中是否包含子字符串,其基本格式为:str.find(substr,beg=0,end=len(str))参数说明:
substr表示指定检索的子字符串
beg表示开始的索引值,默认值为0。
end表示结束的索引值,默认为字符串的长度。如果指定开始和结束的范围,则检查子字符串是否包含在指定范围内,如果包含子字符串则返回开始的索引值,否则返回-1。字符串处理方法41.查找方法find()字符串处理方法4替换方法find()(1)
str.capitalize()该方法返回一个首字母大写的字符串,即字符串的第一个字母变成大写,其他字母变小写。字符串处理方法4替换方法find()(2)
str.replace()该方法将字符串中的旧字符串替换成新字符串,它的基本格式为:str.replace(oldstr,newstr[,max])参数说明:
oldstr表示将被替换的子字符串
newstr表示用于替换的子字符串
max是可选参数,表示最大的替换次数字符串处理方法4替换方法find()(2)
str.replace()字符串处理方法4替换方法find()(3)
str.lower()该方法将字符串中的大写字母转为小写字母。(4)
str.upper()该方法将字符串中的小写字母转为大写字母。字符串处理方法4填充方法(1)
str.center()该方法返回指定长度的字符串,如果指定填充字符则使用填充字符填充,否则使用空格进行填充。基本格式为:str.center(width[,fillchar]))参数说明:
width表示字符串的总宽度。当width参数小于等于原字符串的长度时,原样返回字符串。
fillchar是可选参数,表示填充字符,如果不设置默认使用空格填充。字符串处理方法4填充方法(1)
str.center()字符串处理方法4填充方法(2)
str.zfill()该方法返回指定长度的字符串,原字符串右对齐,前面填充0。其语法格式为:
str.zfill(width)字符串处理方法4删除方法(1)
str.lstrip()该方法用于删除字符串左边的空格或指定字符。(2)
str.rstrip()该方法用于删除字符串右边的空格或指定字符。(3)
str.strip()该方法用于删除字符串左、右两边的空格或指定字符。字符串处理方法4删除方法(1)
str.lstrip()(2)
str.rstrip()(3)
str.strip()字符串处理方法4连接方法str.join()该方法用于将序列中的元素以指定的字符连接生成一个新的字符串。其基本格式为:str.join(seq)参数seq表示要连接的元素序列字符串处理方法4分割方法str.split()该方法通过指定分隔符对字符串进行切片,其基本格式为:str.split(str='',num=string.count(str))参数说明:
str表示分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num表示分割次数。默认为-1,即分隔所有。字符串处理方法4比较方法(1)str.isalnum()检查字符串是否由字母和数字组成,如果所有字符都是字母或数字则返回True,否则返回False。(2)str.isalpha()检查字符串是否只由字母组成。如果所有字符都是字母则返回True,否则返回False。(3)str.isdecimal()检查字符串是否只包含十进制字符。如果字符串是否只包含十进制字符返回True,否则返回False。字符串处理方法4比较方法str.split()(4)str.isdigit()检测字符串是否只由数字组成。如果字符串只包含数字则返回True否则返回False。(5)str.isupper()检测字符串中所有的字母是否都为大写。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。任务描述任务名称:判断字符串是否为旋转词输入一个字符串,判断其是否为旋转词。所谓旋转词是指如果将一个字符串str1从任意的位置切分开,分成两部分,将后面一部分放置在前面,再组合起来成字符串str2,就构成了旋转词。拓展任务任务名称:判断字符串是否为回文回文是一个正读和反读都一样的字符串,比如“level”、“noon”及“凤落梧桐梧落凤”等,程序显示该字符串是回文。THANKYOU《Python应用程序设计》3.3列表列表概述1列表的操作函数2目录列表的操作方法3列表概述1序列是Python中最基本的数据结构之一,而列表是其典型代表之一。列表是包含0个或者多个元素的有序序列,列表类型使用中括号表示,它没有长度的限制,列表中的元素的类型可以各不相同。例如:ls=[1024,'abcd',1024,3.1415926,['red','yellow','blue']]列表概述11.使用索引值访问列表列表可以使用下标索引来访问其中的值,索引值不能越界否则要报错。列表概述12.列表的切片列表的切片操作与字符串类似,也可以使用正向递增序号和反向递减序号,并结合具体需求设置步长的方式来获取零个或多个元素。基本格式为:<列表或列表变量>[[start]:[end][:step]]start、end和step分别表示列表元素开始的索引、结束的索引和步长,也是采用前闭后开的方式选取元素。列表概述12.列表的切片列表概述13.列表的循环遍历(1)使用for循环遍历列表使用for循环遍历列表的方式非常简单,只要将遍历的列表作为for循环表达式中的序列就可以了。列表概述13.列表的循环遍历(1)使用for循环遍历列表使用for循环遍历列表的方式非常简单,只要将遍历的列表作为for循环表达式中的序列就可以了。列表概述13.列表的循环遍历(2)使用while循环遍历列表使用while语句遍历列表的时候,需要先获取列表的长度,并将获取的长度作为循环的变量。列表概述14.列表的嵌套列表支持嵌套,简单来说就是列表里还可以包括列表,例如有一个多层嵌套的列表,里面元素包括数字、字母、列表等元素。例如有列表[[1,2,3],2,3,[1,3,[12,22,[2,3]]],'a',12,range(10)],要将其中的嵌套去掉,变为没有嵌套的列表:[1,2,3,2,3,1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中国汉字听写大会竞赛考前练习题及答案
- 实验小学春季开学典礼致辞5篇
- 致青春演讲稿六百字左右10篇
- 某水电站增容技改综合项目可行性研究报告
- 请外援打篮球协议书
- 山头租赁合同
- 测量相关实习心得5篇
- 新人教版八年级物理上册期中考试卷及答案【完整版】
- 汽车销售个人年度工作总结范文5篇
- 船舶防水涂料施工合同
- 2019版外研社高中英语必选择性必修一-四单词
- 古树名木养护复壮技术规范
- 2025年日历英文版纵向排版周一开始
- S7-1200PLC技术及应用 课件 项目17 步进电机控制
- 《生物技术制药》课程介绍与教学大纲
- 《现代农业技术推广》课件-第七组 农民问题专题调研
- 第30课 家居收纳技巧 课件 2023-2024学年苏教版初中劳动技术七年级上册
- 2024中国一汽校园招聘1000+岗位高频考题难、易错点模拟试题(共500题)附带答案详解
- GB/T 19533-2024汽车用压缩天然气钢瓶定期检验与评定
- 妇产科护士晋升述职报告
- 骨髓腔内输液(IOI)技术
评论
0/150
提交评论