《Python程序设计基础教程(微课版)》全套教学课件_第1页
《Python程序设计基础教程(微课版)》全套教学课件_第2页
《Python程序设计基础教程(微课版)》全套教学课件_第3页
《Python程序设计基础教程(微课版)》全套教学课件_第4页
《Python程序设计基础教程(微课版)》全套教学课件_第5页
已阅读5页,还剩479页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计第1章Python概述与环境配置全套可编辑PPT课件第1章-Python概述与环境配置第2章-Python语法基础第3章-Python控制结构第4章-序列、集合与字典第5章-Python自定义函数第6章-Python文件操作第7章-Python面向对象编程第8章-PythonGUI编程第9章-Python数据库编程学习目标了解Python特点与应用理解Python交互式编程和脚本编程知识目标能够安装Python开发环境能够使用pip管理第三方库能够选择合适的IDE进行后续课程学习能力目标认真治学的态度当代大学生的社会责任和担当精神程序员职业观情感态度与价值观Python概述01020403Python开发环境Python编程方式PythonIDE目

录Python概述01020403Python开发环境Python编程方式PythonIDE目

录Python历史和现状Python语言特点Python应用领域Python起源作者:荷兰程序员GuidovanRossum时间:1991年发展条件硬件技术的突破->关注语言易用性互联网的普及->开源软件、Python社区形成版本Python2.x:历史版本Python3.x:当前主流版本,不兼容2.x1.1.1Python历史和现状2开源、跨平台、解释型的高级编程语言简单易学面向对象可移植性丰富的库可扩展性可嵌入性1.1.2Python特点3Web开发:Django、Flask、Tornado游戏开发:PySoy、pygame桌面应用程序:tkinter、wxPython、PyQt网络爬虫:requests、scrapy、pyspider数据库:sqlite3、pyodbc云计算:OpenStack自动化:Ansible、SaltStack、Selenium科学计算与数据分析:NumPy、Matplotlib机器学习与人工智能:TensorFlow、PyTorch1.1.3Python应用领域4Python概述01020403Python开发环境Python编程方式PythonIDE目

录Python开发环境020403Python编程方式PythonIDE目

录Python概述01Python下载与安装Python扩展包管理Step1:进入官网()对应操作系统的下载页面1.2.1下载Python安装包5Step2:选择合适的版本1.2.1下载Python安装包5双击python-3.12.0-amd64.exe启动安装1.2.2安装Python5管理员权限加入Path环境变量默认安装自定义安装选择“InstallNow”开始默认安装1.2.2安装Python6选择“CustomizeInstallation”进入配置界面1.2.2安装Python6离线开发文档包管理工具tck/tk:GUI库IDLE:开发工具测试套件Python启动器为所有用户安装点击“Next”进入高级配置1.2.2安装Python6为所有用户安装关联Python源文件,需要安装Py启动器创建快捷方式第二次修改Path预编译标准库下载调试符号下载调试二进制文件修改安装路径安装成功1.2.2安装Python6安装后的目录文件1.2.2安装Python7Python解释器pip工具:Python扩展包管理工具从社区下载并安装包至本地更新本地扩展包卸载本地扩展包1.3扩展包管理7pip要在命令行窗口中运行“Win+R”组合键调出“运行”窗口,输入“cmd”后回车,打开命令行窗口【开始】菜单-【Windows系统】-【命令提示符】打开命令行窗口1.3.1安装扩展包7pip安装指令格式1.3.1安装扩展包7pipinstall包名指定镜像网站下载1.3.1安装扩展包7pipinstall包名-i镜像网站url--trusted-host域名pip

install

numpy

-i

/pypi/simple

--trusted-host

指定版本号下载1.3.1安装扩展包8pipinstall包名==版本号pip

install

numpy==1.13.0使用离线安装包1.3.1安装扩展包8pipinstall已下载至本地的离线安装文件pip

installnumpy-1.23.2-pp38-pypy38_pp73-win_amd64.whlpip卸载指令格式1.3.2卸载扩展包8pipuninstall包名pipuninstallnumpypip更新指令格式1.3.3更新扩展包8pipinstall--upgrade包名pip

install

--upgradenumpyPython概述01020403Python开发环境Python编程方式PythonIDE目

录Python编程方式0304PythonIDE目

录Python概述0102Python开发环境交互式编程脚本式编程Python是解释型语言脚本式编程交互式编程1.4Python编程方式8Step1:在文本编辑软件中编写代码1.4.1脚本式编程8任何文本编辑软件都可以完成这项工作,上图为Windows系统自带的记事本工具Step2:将代码保存为“*.py”的脚本文件1.4.1脚本式编程9Step3:在命令行中,启动Python解释器执行脚本文件1.4.1脚本式编程9python脚本文件完整路径文件路径可用英文双引号括起来,避免因空格等符号导致的路径解析错误如何进入交互式编程环境命令行窗口中输入“python”然后回车1.4.2交互式编程9交互式环境下的命令提示符,等待输入用户在其后输入Python语句,回车执行交互式编程适合调试和测试1.4.2交互式编程10输入的Python语句执行后的结果Python概述01020403Python开发环境Python编程方式PythonIDE目

录PythonIDE04目

录Python概述0102Python开发环境03Python编程方式IDLE基本使用PyCharm基本使用集成开发环境(IDE,IntegratedDevelopmentEnvironment)代码编辑器编译器调试器……PythonIDEIDLE:Python开发环境自带的IDEPyCharm:广泛用于Python项目开发的IDE1.5Python集成开发环境10IDLE:Python自带的IDE简洁易用支持交互式编程和脚本式编程基本功能:代码编辑、语法高亮、调试等1.5.1IDLE10IDLE默认进入交互编程模式1.5.1IDLE10IDLE的脚本编辑窗口【File】-【NewFile】打开“untitled”窗口开始编辑保存为“*.py”文件后,从【Run】-【RunModule】或按F5执行1.5.1IDLE11IDLE脚本执行结果显示在主窗口中1.5.1IDLE11脚本执行结果PyCharm:JetBrains公司开发的专业IDE,提供社区版和专业版1.5.2PyCharm11安装PyCharm:双击安装程序进入向导窗口1.5.2PyCharm12安装PyCharm:配置安装路径1.5.2PyCharm12安装PyCharm:设置安装选项1.5.2PyCharm13创建桌面图标添加右键菜单添加文件关联将bin/目录添加到Path环境变量安装PyCharm:设置开始菜单1.5.2PyCharm13安装PyCharm:安装结束,重启完成1.5.2PyCharm13启动PyCharm1.5.2PyCharm13项目入口基础样式设置插件管理学习资料修改基础样式1.5.2PyCharm14窗口主题窗口字体大小创建项目项目=文件夹,项目的脚本文件和子目录都放在文件夹中每个项目都要指定一个Python解释器,在PyCharm中运行项目时,自动调用该解释器执行脚本1.5.2PyCharm14创建项目PyCharm启动界面【Project】-【NewProject】,进入创建项目的向导窗口1.5.2PyCharm14项目存放位置使用已有的解释器第一次使用需要配置1.5.2PyCharm15配置解释器【AddInterpreter】-【AddLocalInterpreter】-【SystemInterpreter】如果没有自动发现,点击右侧的“...”按钮手动添加1.5.2PyCharm16配置好项目后,点击“Create”创建新项目1.5.2PyCharm16新项目中添加子文件夹1231.5.2PyCharm17新项目中添加脚本文件1231.5.2PyCharm17双击脚本文件,在右侧的代码编辑区编写程序代码编辑区行号文件名1.5.2PyCharm18执行脚本执行脚本调试脚本1.5.2PyCharm19查看执行结果1.5.2PyCharm19PyCharm支持交互式编程本章结束Python程序设计第2章Python语法基础学习目标识记Python语言格式框架识记基本要素语法规则理解动态类型与模块知识目标能够编写符合Python风格的简单程序能够使用变量、表达式、基本输入输出进行简单交互能力目标编程规范意识团队协作的重要性日积月累的重要性情感态度与价值观Python语言格式框架01020403运算符与表达式基本输入输出模块的使用目

录Python语言格式框架01020403运算符与表达式基本输入输出模块的使用目

录注释、代码块与缩进保留关键字变量和常量数据类型解释源代码变量、函数等的作用复杂的算法逻辑提高可读性、可维护性两种注释单行注释多行注释2.1.1注释23独占一行,或代码之后1.单行注释23#单行注释文本#以下为矩形的参数rect_width=10#矩形的宽rect_height=15#矩形的高示例2-12.多行注释24三个单引号对以上三种情况之外、解释代码用三个双号对文档字符串放在函数、类内部,或文件开头解释函数、类、文件的用法或作用"""

注释文本

注释文本"""'''

注释文本

注释文本'''2.多行注释24"""第二章的源代码示例包括:注释常量与变量运算符与表达式数据类型"""defsay_hello(name):"""作用:和传入的对象说Hello参数:name-打招呼的对象的名字"""print('Hello,',name)示例2-22.多行注释24'''以下是可执行语句,首先定义了一个变量n,存放了一个名字“张三”,然后调用了函数say_hello(),并将n作为打招呼的对象传给了参数name'''n='张三'say_hello(n)示例2-2代码块:也称“复合语句”作为单元执行的代码段,由一条或多条语句组成冒号+缩进:表示代码块的所属关系2.1.2代码块与缩进24score=92ifscore>=90:print('优秀')print('再接再厉,勇攀高峰!')print('程序结束')示例2-3冒号:属于某结构的代码块从下一行开始相同缩进量的语句组成代码块缩进量变化的语句脱离if代码块常用于选择结构、循环结构函数体、类体空行不会影响代码块的所属关系缩进可使用4个空格(推荐),或tab键(不推荐)2.1.2代码块与缩进24缩进可以嵌套2.1.2代码块与缩进25weather='sunny'temperature=25

ifweather=='sunny':iftemperature>30:

print('今天很热,记得带伞和防晒霜。')else:

print('今天很适合外出,享受阳光吧!')

示例2-42.1.3保留关键字25Python保留关键字andasassertbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyieldasyncawait程序的本质:加工数据(算法+数据)Python对象:数据的载体类型值100:整数类型的一个对象'Hello':字符串类型的一个对象3.14:浮点数类型的一个对象2.1.4变量26Python变量:对象的引用(对象的“别名”)Python变量先定义、再使用某个变量名第一次出现时即为定义个新变量定义时要赋予初始值2.1.4变量26变量名=初始值name='张三'age=18apple_price=8.50示例2-5已定义的变量通过“=”可引用其他对象同一个变量可以引用不同类型的对象2.1.4变量26apple_price=8.50#高速优惠,运输成本降低,苹果降价了apple_price=7.99示例2-6已定义的变量=新对象标识符:用来命名变量、函数、类、模块和其他程序元素的名称必须以字母(a-z,A-Z)或下划线(_)开头,后面可跟任意个数字、字母或下划线大小写敏感Python的保留关键字不能用作标识符避免与内置或已导入的模块名、函数名、对象名、类型名等重名变量命名遵循标识符命名规则2.1.4变量26Q:请判断下列标识符的命名是否符合Python语法要求测一测var_Rabbit_car_no4logwhile推荐的命名方式以下划线开头的标识符在Python中有特殊含义不推荐使用汉字命名变量推荐使用有意义的单词给标识符命名,多个单词之间用下划线连接is_enough、bottle_nums2.1.4变量26Python是强类型语言类型确定后,只能进行符合该类型约束的行为Python是动态类型语言无需显式指定类型解释器根据值自行判断数据类型2.1.5数据类型27张三25岁2.5元/瓶4+2j2.1.5数据类型27数值类型int:表示整数数值,-100,0,2,99float:表示带有小数部分的数值,-0.3,10.2complex:表示复数(实部和虚部),1+4jage=18temperature=36.4x=1+4j2.1.5数据类型27布尔类型(bool)表示逻辑值,有两个取值:True:陈述成立,结果为真False:陈述不成立,结果为假用于选择结构、循环结构a=int(input('请输入一个整数:')result=(a%2==0)result=(a>100)2.1.5数据类型27数据容器包含一个或多个元素,每个元素都是独立的数据提供对元素的各种操作,如增加元素、删除元素、查找指定元素、排序等a='hello!'#a是一个字符串b=(1,-5,7)#b是一个元组c=[1,2,6]#c是一个列表d={'a','b','c'}#d是一个集合e={'right':4,'wrong':1}#e是一个字典、

2.1.5数据类型27空类型(NoneType)只有一个取值:None变量不指向任何值函数没有明确的返回值#定义变量时但没给它赋值,Python不会设置其值为Nonevarvar=None#错误!定义变量时必须给初始值!#但可以明确给变量赋值为None2.1.5数据类型27type():返回变量的实际类型type(变量)x=10print(type(x))#打印结果:<class'int'>示例2-72.1.5数据类型27Python中,通过内置函数将一种类型的数据,转换成另一种类型的数据int():转换为整数float():转换为浮点数str():转换为字符串bool():转换为布尔值变量=转换函数(变量)转换数据类型2.1.5数据类型28#默认转换为十进制,如需转换为其他进制,可使用第2个参数指定#如int('F10',16)将字符串'F10'转换为十六进制整数x=int('10')x=x+2s=str(x)

示例2-82.1.5数据类型28isinstance():测试对象是否为指定类型的实例,是返回True,不是则返回Falseisinstance(变量,类型名)x=10ifisinstance(x,str):print('是字符串')else:print('不是字符串')#打印结果:不是字符串示例2-92.1.6对象共享28变量B=变量A为变量A引用的对象创建了一个新的别名BA和B引用的是同一个对象a='Hello'b=ax=[1,2,3]y=xx[0]=0print(y)#打印结果:[0,2,3]示例2-10可变数据类型:通过一个变量所作的修改会反映在所有引用该对象的变量上2.1.6对象共享28id():返回一个对象的唯一标识符,是一个整数,通常代表着该对象的地址id(变量或字面量)x=10y=10print('10的地址:',id(10))print('x的地址:',id(x))print('y的地址:',id(y))示例2-112.1.6对象共享29不可变对象:int、float、str、tuple等,存储会进行优化,两个变量被赋予相同的值时,可能会让它们引用同一个对象t1=(2,4,6)t2=(2,4,6)print('t1的地址:',id(t1))print('t2的地址:',id(t2))示例2-112.1.6对象共享(补充)Python提供小数据池对一些数据进行缓存,当程序引用这些数据时,不会创建新对象,而是引用小数据池里的对象,例如整数将缓存[-5,256]的整数避免频繁创建和销毁对象,提升效率2.1.6对象共享29可变对象:list、set、dict等,每个对象在内存中都有独立的存储空间l1=[1,3,5]l2=[1,3,5]print('l1的地址:',id(l1))print('l2的地址:',id(l2))示例2-11下列代码片段中,x和y地址一样的是?测一测x=145y=145

x=145y=120.0

x={1,2,3}y={1,2,3}

x=y={1,2,3}

A.B.C.D.Python语言格式框架01020403运算符与表达式基本输入输出模块的使用目

录运算符与表达式020403基本输入输出模块的使用目

录Python语言格式框架01运算符表达式2.2.1运算符292.2.1运算符29%:求余数10%4:10除以4的余数,结果为2**:幂运算10**4:10的4次方,结果为10000/和///:真实除,返回实际的结果,为浮点数//:整除,将商向下取整后返回,如果两个操作数都是整数则返回整数部分,否则返回实数301.算术运算符/和///:真实除,返回实际的结果,为浮点数//:整除,将商向下取整后返回,如果两个操作数都是整数则返回整数部分,否则返回实数301.算术运算符10.5/2.110/210/2.010.0/25.05.05.05.010.4/210.4//211/211//25.255.55.0Q:整型变量x中存放了一个两位数,如果要将其个位数与十位数互换,如“13”变成“31”,下列语句正确的是?测一测A:(x%10)//10+x//10

B:(x%10)*10+x//10

C:(x/10)%10+x//10

D:(x%10)*10+x%10

测一测A:c*d/(2*a*b)

B:c/2*d/a/bC:c*d/2*a*bD:c*d/2/a/b2.2.1运算符302.2.1运算符30对常量、变量或表达式的值进行比较比较成立返回True比较不成立返回False常用于选择结构、循环结构的控制条件302.比较运算符a=int(input('请输入第一个整数:')b=int(input('请输入第二个整数:')print(a!=b)#由a和b的值,“a不等于b”成立吗?302.比较运算符2.2.1运算符302.2.1运算符逻辑运算符对布尔值进行运算303.逻辑运算符运算符操作数取值not逻辑非1个notTrue:FalsenotFalse:Trueand逻辑与2个TrueandTrue:True其他:Falseor逻辑或2个FalseorFalse:False其他:True优先级:not>and>or操作数通常是一个bool表达式或bool变量常用于将多个条件组合在一起以形成更复杂的条件303.逻辑运算符a=int(input('请输入第一个整数:')b=int(input('请输入第二个整数:')ifb!=0anda>b:print(a/b)Q:右方代码的执行结果是?x=Truey=Falsez=Falseprint(xoryandz)测一测A:true

B:TrueC:falseD:False2.2.1运算符302.2.1运算符30赋值运算符=:将右操作数的值赋予左操作数4.赋值运算符变量=字面量/变量/表达式/函数返回值a=100b=int(input('请输入第二个整数:')c=a+bd=c复合赋值运算第一步:先计算“变量

其他运算符

右操作数”的值第二步:将第一步的结果赋值给变量314.赋值运算符变量

其他运算符=右操作数a=100a+=100a=a+100复合赋值运算的左操作数必须先定义Python不允许在if、while语句中赋值Python不提供++、--运算符,用+=、-=替代完成x+=1x-=14.赋值运算符31序列赋值:=右边的值依次赋值给左边的变量4.赋值运算符31变量1,

变量2,

...,

变量N=初值1,

初值2,

...,

初值Na,b=10,5#定义变量a、b并赋值:a=10,b=5print(a,b)#打印结果:105a,b=b,a#序列赋值完成值交换:a=b,b=aprint(a,b)#打印结果:510示例2-122.2.1运算符312.2.1运算符31in:检查一个数据是否存在于某个数据容器中存在:结果为True不存在:结果为False5.成员运算符in31fruits=['apple','banana','cherry']#列表print('apple'infruits)

#Trueprint('mange'infruits)

#False示例2-13notin:检查一个数据是否不存在于某个数据容器中不存在:结果为True存在:结果为False5.成员运算符in31fruits=['apple','banana','cherry']#列表print('apple'notinfruits)

#Falseprint('mange'notinfruits)

#True示例2-132.2.1运算符312.2.1运算符31is:比较两个操作数是否为同一个对象is比较的是对象的内存地址==比较两个对象的值是否相等326.身份运算符isa=1000b=ac=1000print(aisb)print(aisc)

a=[1,3,5]b=aprint(aisb)

a=[1,3,5]b=[1,3,5]print(aisb)print(a==b)

不可变类型若进行了优化,相同值的变量引用的是同一个对象可变类型空间独立——a、b不同对象a和b的值确实是一样的a赋值给b,相当于a引用对象取新别名——a和b引用同一个对象2.2.1运算符322.2.1运算符32a=10327.位运算符运算符示例结果按位与&a&22按位或|a|210按位异或^a^28按位取反~a~2-11左移<<a<<240右移>>a>>22表达式:使用运算符将操作数组合在一起以形成值的计算过程算术表达式逻辑表达式比较表达式……用于实现各种计算和逻辑,包括但不限于数学计算、字符串处理、选择结构、循环结构等2.2.2表达式332.2.2表达式33x=10#这是一个条件表达式,如果x大于5,则执行if块内的代码ifx>5:print('x大于5')示例2-17Q:数学关系式2<x≤10,Python表达式写作?测一测A:2<x&&x<=10B:2<xandx<=10C:2<x<=10D:x>2orx<=10Python支持链式比较,隐式地按照逻辑与(and)评估该条件每天进步5‰一年后能达到什么状态?每天退步5‰一年后还剩下多少?33不积跬步,无以至千里;不积小流,无以成江海。——《荀子·劝学》实战2-1:跬步千里变量的使用:变量代替字面量数据使用更加灵活33实战2-1:跬步千里#初始化变量power=1growth_rate=0.005#每天进步千分之五decline_rate=0.01#每天退步百分之一days=365#变化的天数参考代码

33实战2-1:跬步千里#计算进步情况final_growth=power*(1+growth_rate)**days#计算退步情况final_decline=power*(1-decline_rate)**days参考代码输出信息:print()33实战2-1:跬步千里#输出结果print('每天进步5‰一年后:',final_growth)print('每天退步1%一年后:',

final_decline)参考代码Python语言格式框架01020403运算符与表达式基本输入输出模块的使用目

录基本输入输出0304模块的使用目

录Python语言格式框架0102运算符与表达式input()print()input():接收用户输入的数据程序暂停在input()这一行,等待用户输入用户输入数据、按下回车后,程序继续执行input()将输入数据作为“字符串”返回,通过“=”存在变量中后续可通过该变量使用输入数据“提示字符串”可选,用于提示需要输入什么数据342.3.1input()变量=input([提示字符串])342.3.1input()s=input('请输入一个整数:')#假设输入数据:12

num=int(s)ifnum%2==0:print('偶数')else:print('奇数')示例2-17print():将数据打印在终端显示打印字符串打印多个数据格式化输出352.3.2print()打印字符串352.3.2print()print('Hello,Python!')#打印结果:Hello,Python!a='Good'b='day!'int(a+b)#打印结果:Goodday!示例2-18打印多个数据352.3.2print()name='张三'age=18print('我的名字是',name,age,'岁')示例2-19格式化输出:处理待输出字符串中不确定的数据时使用格式化字符串:显示在终端的字符串,包含占位符占位符:特殊的格式化代码,指定如何显示数据%d:用于格式化整数类型的数据%f:用于格式化浮点数类型的数据%s:用于格式化字符串类型的数据352.3.2print()print(格式化字符串%格式化变量)格式化输出352.3.2print()price=float(input('请输入蛋糕单价:'))num=int(input('请输入蛋糕个数:'))payable=price*num#单价*个数:计算应付金额print('蛋糕%.2f/个,共%d个'%(price,num))print('应支付:%.2f元'%payable)示例2-20设置特殊参数,改变print()默认行为end:改变末尾自动输出的结束符362.3.2print()print('Hello')print('World')print('Hello',end='')print('World')示例2-21设置特殊参数,改变print()默认行为sep:改变打印多个数据时,默认添加的分隔符362.3.2print()name='张三'print('我的名字是',name)print('我的名字是',name,sep=':')示例2-22input()和print()的使用if语句的简单应用36实战2-2:文字西游欢迎界面input()和print()的使用37实战2-2:文字西游欢迎界面#输出欢迎信息和游戏介绍print("欢迎来到文字西游!")print("版本:1.0")print("这是一个用文字描述的西游冒险游戏,你将扮演一位英雄踏上西行之旅。")#提供开始游戏选项choice=input("请输入'start'开始游戏,或输入其他内容退出:")参考代码if语句的简单应用37实战2-2:文字西游欢迎界面#判断玩家输入ifchoice=='start':#获取角色名字role_name=input('请输入你的角色名字:')print('欢迎%s加入西游冒险!'%role_name)print('游戏正式开始!')else:print("感谢你的关注,期待下次与你相遇!")参考代码Python语言格式框架01020403运算符与表达式基本输入输出模块的使用目

录模块的使用04目

录Python语言格式框架0102运算符与表达式03基本输入输出import关键字turtle库模块:一个包含Python代码的文件包内有多个代码文件提供了定义好的变量、函数或类实现了一些特定的功能作用组织和管理代码可重用易维护2.4模块38内置模块time、math、os、sqlite3、……第三方模块numpy、matplotlib、scrapy、……模块“导入”才能使用关键字:import2.4模块38导入模块中所有的内容通过“模块名.”前缀使用其中的对象2.4模块38import模块名[as模块别名]importmathr=2.0print(r**2*math.pi)示例2-23别名的作用简化代码避免模块命名冲突提高代码可维护性和可移植性2.4模块38importmatplotlibaspltplt.title('SamplePlot')示例2-24导入模块中指定的对象导入的对象可直接使用,不需要模块名前缀2.4模块38from模块名import对象名[as对象别名]frommathimportradians#将30°转换为弧度值result=radians(30)示例2-252.4模块38import模块名from模块名import对象名引入名字空间是,更安全否引入全部内容是否,按需引入需要模块名前缀是否,更简洁绘制一个花瓣长200像素、红边黄底的太阳花turtle库的使用38实战2-3:绘制太阳花turtle:Python内置模块之一,用于绘制基本的图形画笔(小海龟)移动画笔的方法设置颜色的方法实战2-3:绘制太阳花38实战2-3:绘制太阳花39importturtle#导入turtle库#设置绘制窗口的宽度和高度turtle.setup(width=600,height=600)

turtle.penup()

#抬起画笔#移动画笔到坐标(-150,50)作为起始点turtle.goto(-150,50)

turtle.pendown()

#落下画笔示例2-26实战2-3:绘制太阳花39#画笔蓝色,填充黄色turtle.color('blue','yellow')turtle.begin_fill()

#开始填充foriinrange(5):turtle.fd(300)

#沿当前方向前进300像素turtle.right(144)

#向右旋转144度turtle.end_fill()

#结束填充turtle.done()

#保持绘制窗口一直打开示例2-27实践要点模块导入和使用:正确导入turle库并使用其中的对象循环结构:通过for循环重复绘制太阳花的花瓣编码与调试查阅文档40实战2-3:绘制太阳花实战2-3:绘制太阳花importturtleturtle.color('red','yellow')turtle.hideturtle()turtle.begin_fill()foriinrange(36):turtle.fd(400)turtle.right(170)turtle.end_fill()turtle.done()参考代码本章结束Python程序设计第3章Python控制结构学习目标理解Python选择结构、循环结构、异常处理的使用场景掌握选择结构、循环结构、异常处理的语法知识目标能够正确分析控制结构的执行结果能够选择合适的控制结构处理实际问题能力目标计划与执行力的重要性良好的防御性编码习惯情感态度与价值观选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目

录选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目

录单分支结构双分支结构多分支结构结构化程序设计三大控制结构45顺序结构选择结构条件成立YesNo循环结构条件成立NoYes自上而下不可兼得重复执行根据特定条件,有选择的执行某些代码关键字ifelifelse3.1选择结构45当某项条件满足时就必须执行某项操作,不需要考虑条件成立之外的情况由一个if语句构成3.1.1单分支结构45if条件表达式:代码块判断用户输入的数字是否为偶数,如果是,则打印“偶数”,然后程序结束不需要处理非偶数的情况-->单分支结构3.1.1单分支结构46a=int(input('请输入一个整数:'))ifa%2==0:print('偶数')示例3-1易错1:遗漏冒号易错2:缩进错误同时考虑条件成立、不成立时各需要执行哪些操作3.1.2双分支结构46if条件表达式:代码块1else:代码块2判断用户输入数字奇偶性为偶数,则打印“偶数”,为奇数,则打印“奇数”3.1.2双分支结构47a=int(input('请输入一个整数:'))ifa%2==0:print('偶数')eles:print('奇数')示例3-2双分支条件表达式3.1.2双分支结构47a=int(input('请输入一个整数:'))result='偶数'ifa%2==0else'奇数'print(result)示例3-3表达式1if条件表达式else表达式2条件成立返回表达式1的值条件不成立返回表达式2的值两个以上互斥条件时使用-->“多选一”3.1.3多分支结构47if条件表达式1:代码块1elif条件表达式2:代码块2[else:代码块3]温度值-->状态3.1.3多分支结构48temperature=25

iftemperature>=30:status='热'eliftemperature<10:status='冷'else:status='适中'

print('温度%d对应的状态是%s'%(temperature,status))示例3-4可以有多个elif分支3.1.3多分支结构48ifscore>=90:grade='优'elifscore>=80:grade='良'elifscore>=70:grade='中等'elifscore>=60:grade='合格'else:grade='不合格'示例3-5条件互斥能走到“score>=80”说明“score>=90”一定满足多分支结构嵌套分支结构实战3-1:折扣计算49高级会员≥10其他

8折9折普通会员≥10其他85折95折≥5件85折input():增加程序灵活性49实战3-1:折扣计算#初始化变量original_price=float(input('请输入商品原价:'))quantity=float(input("请输入购买数量:"))membership_level=input("请输入会员等级(高级会员/普通会员/非会员):")discount=1#折扣默认值为1,表示不打折参考代码选择结构的运用50实战3-1:折扣计算ifmembership_level=='高级会员':ifquantity>=10:discount=0.8#高级会员购买10件以上8折elifquantity>=5:discount=0.85#高级会员购买5-9件8.5折else:discount=0.9#高级会员购买1-4件9折elifmembership_level=='普通会员':ifquantity>=10:discount=0.85#普通会员购买10件以上8.5折else:discount=0.95#普通会员购买1-9件9.5折参考代码计算应付金额50实战3-1:折扣计算final_price=original_price*discount*quantityprint('应付金额为:%.2f元'%final_price)参考代码选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目

录循环结构:while/for020403循环结构:进阶使用异常与异常处理目

录选择结构:if语句01while循环break与continuefor...in循环特定条件下重复执行一段代码避免代码冗余关键字whilefor...in3.2循环结构50循环结构条件成立NoYes条件表达式为真时重复执行一段代码块条件表达式后面的冒号重复执行的代码块(即循环体)要相对于所属的while缩进3.2.1while循环50while条件表达式:代码块重要:循环变量的使用书写条件表达式循环体中如何改变为偶数,则打印“偶数”,为奇数,则打印“奇数”3.2.1while循环51i=2#既是循环变量,又是求和的参数result=1#记录和值whilei<=100:result+=ii+=1

print(result)示例3-6使用不当死循环模拟存钱罐当“罐内硬币数量与新存入硬币数量之和小于或等于存钱罐容量上限”时允许存入3.2.1while循环51limit=500save=0balance=int(input('请输入新存入硬币数量:'))whilesave+balance<=limit:save+=balanceprint('现有硬币:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬币数量:'))示例3-7作用:提前结束循环行为break:退出当前循环,继续执行后面的语句continue:跳至while/for判断要不要进入下一次循环3.2.2break和continue52i=1whilei<=5:ifi==3:continueprint(i)i+=1示例3-9i=1whilei<=5:ifi==3:breakprint(i)i+=1示例3-8应用1:遍历并处理可迭代对象的元素3.2.3for循环52按照某种顺序逐个访问对象中每一项内容的过程iterable,Python中支持元素遍历的对象,包括序列、集合、字典、生成器等for循环变量in可迭代对象:代码块应用1:遍历并处理可迭代对象的元素3.2.3for循环53for循环变量in可迭代对象:代码块列表元素求和3.2.3for循环53list1=[3,4,0,-1,7]result=0foreinlist1:result+=eprint(result)示例3-10list1=[3,4,0,-1,7]i,result=0whilei<len(list1):result+=list1[i]i+=1应用2:实现明确次数的循环range()3.2.3for循环54用法说明示例range(n)生成[0,n]范围内的n个整数range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范围内的n-m个整数range(1,5)-->序列:1,2,3,4range(m,n,step)以step为步长,生成[m,n-1]范围内的整数序列range(1,10,3)-->序列:1,4,7[1,100]整数求和3.2.3for循环54result=0foriinrange(1,101):result+=i示例3-1214天短期投资回报计算3.2.3for循环54result=100000.00#收益,初始值为本金10万rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循环体中使用循环变量应用3:同时遍历多个可迭代对象3.2.3for循环54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14应用3:同时遍历多个可迭代对象3.2.3for循环55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目

录循环结构:进阶使用0304异常与异常处理目

录选择结构:if语句0102循环结构:while/forelse子句嵌套循环while/for可以带一个else子句,循环正常结束时进入while循环:当循环条件不满足而退出循环后会进入for循环:当可迭代对象的所有元素遍历完而退出循环后进入因break退出循环不会进入else分支主要用途:收尾工作,如打印信息、记录日志等3.2.4else子句55else子句使用3.2.4else子句55list1=[1,2,3,-1,-2,4]

fornuminlist1:ifnum<=0:print('列表中含有非正数元素')breakelse:print('列表中所有元素均为正数')print('测试结束')示例3-16嵌套循环:在一个循环内部放置另一个循环九九乘法表3.2.5

嵌套循环56foriinrange(1,10):forjinrange(1,i+1):

print('%d*%d=%d'%(i,j,i*j),end='\t')print()#换到新的一行示例3-17选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目

录异常与异常处理04目

录选择结构:if语句0102循环结构:while/for03循环结构:进阶使用异常的概念和类型异常的捕获异常的处理异常:Python程序执行期间发生的一个特殊错误,它会中断正常的程序流程,让程序停止运行异常处理:确保程序在出现异常时能够得到处理,而不是直接终止运行3.3.1

异常的概念与类型62异常测试:除数为0的异常3.3.1

异常的概念与类型63total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))print('单价:%.2f'%(total_cost/total_weight))print('计算完成')示例3-20异常类:Python将导致程序终止执行的异常情况封装为不同的类,通过命名表明其错误原因3.3.1

异常的概念与类型64异常类说明异常类说明BaseException所有异常类的基类SyntaxError语法错误除法AttributeError访问对象没有的属性触发TypeError不适当的操作对象触发IndexError访问序列不存在的索引触发ValueError函数参数无效触发KeyError访问字典不存在的键触发IOError输入输出错误IndentationError缩进错误NameError访问没有定义的变量触发try结构:先捕获要处理的异常对象,再进行处理3.3.2

异常的捕获与处理64try:#尝试执行的代码块except[异常类型as对象别名]:#处理异常的语句块eles:#try块顺利完成后需要执行的语句块finally:#不论是否发生异常最终都要执行的语句块try...except:Python捕获处理异常的基本结构3.3.2

异常的捕获与处理64try:#尝试执行的语句except:#异常处理语句将尝试执行的语句放在try块中try中没有发生异常,不执行任何异常处理程序一旦发生异常,程序将创建相应异常类型的对象抛出except分支捕获其后指定类型的异常对象,如果没有指定则捕捉所有类型进入except分支处理try块中发生异常之后的语句不会再执行try...except捕获处理所有异常3.3.2

异常的捕获与处理65try:total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))print('单价:%.2f'%(total_cost/total_weight))except:

print('发生异常!')print('计算完成')示例3-21try...多个except处理不同异常3.3.2

异常的捕获与处理65try:total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))print('单价:%.2f'%(total_cost/total_weight))exceptZeroDivisionErrorase:print('总重量不能为0:%s'%e.args[0])exceptValueErrorase:print('输入的数据无法转换为数字:%s'%e.args[0])exceptBaseExceptionase:print('其他异常:%s'%e.args[0])print('计算完成')示例3-22finally块:用于无论是否引发异常都要执行的操作else块:处理程序正常执行的情况下,完成一些额外的操作3.3.2

异常的捕获与处理66try块except块else块finally块发生异常无异常无异常无elseelse和finally的使用3.3.2

异常的捕获与处理66try:total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))price=total_cost/total_weightexceptZeroDivisionErrorase:print('总重量不能为0:%s'%e.args[0])exceptBaseExceptionase:print('其他异常:%s'%e.args[0])else:print('单价:%.2f'%price)finally:print('本次任务结束')示例3-23本章结束Python程序设计第4章

序列、集合与字典学习目标理解数据容器应用场景掌握常用容器对象的创建和操作知识目标能够使用常用容器存储和操作数据能够正确选择容器解决实际问题能力目标追求创新,避免重复造车轮个人职责的重要性团队协作与组织的重要性情感态度与价值观什么是数据容器01020403序列集合字典目

录什么是数据容器01020403序列集合字典目

录数据容器的概念数据容器:可以存储多个数据项的复合数据类型序列:字符串、列表、元组集合字典每种容器都有其特定的方法,应根据具体的应用场景和需求,选择合适的容器什么是数据容器71什么是数据容器01020403序列集合字典目

录序列020403集合字典目

录什么是数据容器01字符串列表元组切片序列:存储有序的元素集合字符串列表元组4.1序列71元素按插入的顺序排列位置关系固定通过索引访问任意元素正数索引:左->右负数索引:右->左字符串:零个或多个字符组成的有序字符序列多行注释:三引号对''''''""""""字符串字面量:单引号/双引号对'good'"100"注意:Python中单个字符也是字符串4.1.1字符串71字符串变量的定义4.1.1字符串72language='Python'author='GuidovanRossum'示例4-1变量=字符串字面量字符串变量的访问4.1.1字符串72info='hello'print(info)

#打印整个字符串print(info[1]) #打印info第二个字符(从左往右计数)print(info[-2]) #打印info第二个字符(从右往左计数)info[0]='H'

#错误:不可以修改已经创建的字符串中的字符info='Hello' #正确示例4-2字符串格式化%f-string字符串方法format()4.1.1字符串72常用占位符%d%f%s占位符:{}字符串格式化:f-string在字符串前加上字母“f”或“F”,可以将花括号“{}”内的表达式作为字符串的格式化参数4.1.1字符串72name='张三'age=18print(f'{name}今年{age}岁')#直接使用变量的值替换{}

a=5b=10print(f'a+b={a+b}')#用a+b的值替换{}

m=2.99print(f'梨子{m:.2f}元/斤')#冒号后面是指定的格式示例4-3字符串格式化:format()4.1.1字符串73#按实际参数出现的顺序逐个填入占位符name='张三'age=18print('{}今年{}岁'.format(name,age))示例4-4<模板字符串>.format(<逗号分隔的实际参数>)字符串格式化:format()4.1.1字符串73#按实际参数的位置索引填入相应的占位符var='{0}9元一斤,{1}10元四斤,{0}和{1}各买一斤多少钱?'print(var.format('苹果','桃子'))

#按关键参数填入相应的值var='小明今年{age}岁,正在读{school}。'print(var.format(age=17,school='高中'))示例4-4<模板字符串>.format(<逗号分隔的实际参数>)字符串运算+:连接左右两个字符串*:将字符串重复N次,字符串为左操作数,N为右操作数4.1.1字符串73str1='Hello,'str2='World!'result=str1+str2#打印结果:Hello,World!str1='abc'result=str1*3#打印结果:abcabcabc示例4-5、4-6Python提供一些内置函数处理字符串len():获取字符串长度4.1.1字符串73str1='abc'print(len(str1))#打印结果:3示例4-7函数名(待处理对象)len()也可用于其他数据容器,获取容器内元素个数chr():获取ASCII码对应的单个字符ord():获取单字符的ASCII码4.1.1字符串74x=123print(chr(x))#打印结果:{x='1'print(ord(x))#打印结果:49示例4-8、4-9字符串方法split()strip()join()find()……4.1.1字符串74字符串对象.方法名(参数)split():根据指定的分隔符,将字符串拆分成多个子字符串,并返回一个包含这些子字符串的列表sep:可选,指定分隔符字符串,如果不提供或为空字符串,默认使用空白符,包括空格、制表符、回车符等maxsplit:可选,指定最大拆分次数4.1.1字符串74字符串对象.split([sep,maxsplit])split()使用4.1.1字符串74#使用默认分隔符(空白符)str1='HelloWorldfromPython'result=str1.split()print(result)#输出:['Hello','World','from','Python']#指定分隔符(,)str1='apple,banana,orange'result=str1.split(',')print(result)#输出:['apple','banana','orange']示例4-10split()使用4.1.1字符串74#指定最大切分次数为2str1='apple,banana,orange,grape'result=str1.split(',',2)print(result)#输出:['apple','banana','orange,grape']示例4-10strip():删除字符串开头和结尾的指定字符chars:可选,指定要删除的字符,如果不提供或为空字符串,默认删除空白符4.1.1字符串75字符串对象.strip([chars])strip()使用4.1.1字符串75#删除头尾空白符str1='Hello,

温馨提示

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

最新文档

评论

0/150

提交评论