版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python语言程序设计
课程简介
全套可编辑PPT课件Python语言Python语言是一种跨平台、面向对象的高级程序设计语言,具有简洁性、易读性以及可扩展性,广泛应用于Web和Internet开发、科学计算和统计、人工智能、数据处理、图形界面开发、软件开发、后端开发、网络爬虫等众多领域,在产业界应用广泛。课程简介《Python语言程序设计》是理工类、经管类专业必修的学科基础、专业通识课程,通过理论学习和上机编程训练,重点培养学生分析问题、算法设计、程序编写和调试能力的能力,突出函数的模块化程序设计思想。通过编程实践培养学生的创新能力和计算思维能力。课程思政目标激发学生的担当意识和爱国情怀,引领学生树立正确的人生观和价值观,具备良好的职业道德。使得学生具备正确的工程实验和研究方法,发现问题、解决问题的创新意识和能力,勤于思考、开拓思想、敢于创新、严谨的工作态度和意识。具有自主学习和终身学习的意识,有不断学习和适应发展的能力。知识能力目标要求掌握程序设计的基本要素,掌握程序设计的三种基本结构,能够分析问题、设计算法、绘制NS流程图,能够正确地编写程序,掌握程序调试的方法和技巧、具备较强的程序调试能力。知识能力目标具备良好的计算思维能力,具备分析问题、解决问题的意识和能力,能使用Python语言解决较为复杂的数学问题,具备使用计算机技术解决实际问题和本专业领域问题的意识和能力。学时安排共48学时讲课26学时上机22学时8《开心学Python》视频通过众多微视频,讲解程序设计基础算法设计程序设计程序调试使得读者能够通过视频,轻松愉快地学习程序设计。学习建议注意过程性考核完成度坚持上课,尽量不缺勤,反复观看视频重视分析问题、算法设计、NS图绘制坚持上机编写程序、正确的程序调试方法及时完成提交作业、实验坚持参加阶段测验第1章程序设计概述
11主要内容1.程序设计语言2.程序设计的本质3.算法4.算法的表示5.结构化的程序设计121.程序设计语言程序是用来完成特定功能的一系列指令。通过向计算机发布指令,程序设计人员可以控制其执行某个操作或进行某种运算。一组指令构成一个程序,可以用来解决一个具体问题。13语言的分类1.机器语言2.汇编语言3.高级语言
4.面向对象的程序设计语言:VB/VC/JAVA/C#/Python语言的分类使用二进制编码的指令编写程序的语言被称为机器语言。机器语言程序,执行效率高。语言的分类汇编语言使用助记符来代替机器语言的指令码,使机器语言符号化,从而提高编程效率。如:ADDA,9使用汇编语言的助记符编写的程序称为汇编语言源程序。语言的分类高级语言是类似于自然语言、以语句和函数为单位书写程序的编程语言。高级语言编写的程序称为高级语言源程序编译器先使用其编译程序将高级语言源程序转换为汇编语言源程序,再由汇编程序将汇编语言源程序转换为机器可执行的二进制语言程序。17语言的分类4.面向对象的程序设计语言:VB/VC/JAVA/C#/Python(构件化的语言)
编程语言的分层结构编程语言的分层结构思维,以下层语言为基础,再定义一套能力更强的新语言和编译器。人们使用新语言高效率地编写程序,使用编译器将其编译成下层语言能识别的源程序。19语言的执行方式编译执行:将源程序翻译生成一个可执行的目标程序,该目标程序可以脱离编译环境和源程序独立存和执行如C、C++解释执行:将源程序逐句解释成二进制指令,解释一句执行一句,不生成可执行文件,它的执行速度比编译方式慢。如Basic、Java、Python等语言的版权问题与国产编程语言为什么没有国产的主流编程语言C语言没有版权问题Java在Oracle的手上x86、ARM指令集也受专利保护编程语言也面临着断供的风险!语言的版权问题与国产编程语言华为除了推出鸿蒙操作系统外,即将发布国产“仓颉”编程语言,补齐软件核心短板。颉,原姓侯冈,名颉,俗称仓颉先师,又史皇氏,又曰苍王、仓圣。《说文解字》、《世本》、《淮南子》皆记载仓颉是黄帝时期造字的左史官,见鸟兽的足迹受启发,分类别异,加以搜集、整理和使用,在汉字创造的过程中起了重要作用,被尊为“造字圣人”。22Python起源1989年圣诞节,荷兰人吉多·范罗苏姆(GuidovanRossum),Python诞生Python名字,电视剧MontyPython'sFlyingCircus。Python语言是从ABC语言发展起来1991年,第一个Python解释器诞生Python发展最初的Python完全由Guido本人开发。Guido和一些同事构成了Python的核心团队,他们将自己大部分的业余时间用于hackPython。Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python发展Python语言无处不在PYPLPopularitYofProgrammingLanguagePython发展2011年1月,Python被TIOBE编程语言排行榜评为“2010年度编程语言”的称号。2019年1月,Python再次被TIOBE编程语言排行榜评为“2018年度编程语言”的称号。Python是当今高校中最常被教授的首选语言,它在统计领域排名第一、在AI编程中排名第一、在编写脚本时排名第一、在编写系统测试时排名第一。除此之外,Python还在Web编程和科学计算领域处于领先地位。总之,Python无处不在。Python特点优点:简单易学免费开源高级语言可移植性解释性面向对象可扩展性丰富的库缺点:运行速度慢代码无法加密独特的语法格式Python应用领域Web应用开发网络爬虫计算与数据分析人工智能自动化运维云计算网络编程游戏开发2.程序设计的本质【例1.1】简单的Python程序,输出一行行语句。print("尚德尚学尚行,爱国爱校爱人!")print("人生苦短,我用Python!")print("我爱编程!")说明:print()语句输出数据29冯.诺依曼体系结构(1)计算机由控制器、运算器、存储器、输入设备和输出设备5个部分构成。(2)计算机采用二进制,指令和数据均以二进制数形式表示和存放。(3)计算机按照程序规定的顺序将指令从存储器中取出,并逐条执行。30程序设计的本质程序设计的本质是设计能够利用计算机的五个部件完成特定任务的指令序列。【例1.2】输入樱桃单价和斤数,计算并输出总金额。price=float(input("请输入单价"))number=float(input("请输入樱桃斤数"))total=price*numberprint("总金额为",total)说明:分析五部件在程序中的作用过程。input()语句输入数据。313.程序设计的过程
分析和定义实际问题建立处理模型:设计算法设计流程图编写程序调试程序和运行程序程序设计的过程分析和定义实际问题深入分析实际问题,准确提炼、描述要解决的问题。程序设计的过程建立处理模型用特定方法描述问题的规律和数值关系,为确定计算机的实现算法而做的理论准备。如数学、物理、化学等模型程序设计的过程设计算法将要处理的问题分解成计算机能够执行的若干特定操作,也就是确定解决问题的算法。如积分公式转换为算法。程序设计的过程绘制流程图在编程前给出处理步骤的流程图,只管反映所处理问题中复杂的关系,以便编程时思路清晰、避免出错。流程图是程序设计的良好工具,方便程序员交流程序设计的过程编写程序:用某种语言按照流程图描述的步骤写出程序。用某种语言编写的程序叫做源程序。程序设计的过程调试和运行程序将写好的程序上机检查、编译、调试和运行,发现并纠正错误。38算法的概念和特性算法:解决一个问题所采取的一系列步骤。NikiklausWirth提出一个公式:程序=数据结构+算法数据结构是指在程序中数据的类型和组织形式。Python语言中有列表、元组、序列、字典、集合等。算法给出了解决问题的方法和步骤,是程序的灵魂它能决定如何操作数据,如何解决问题。同一个问题可以有多种不同算法。39算法举例算法,必须是计算机能够运行的方法。【例1.3】求1+2+3+4+…+100。第一种算法:书写“1+2+3+4+5+6+…+100”的表达式,很难完成且容易出错。第二种算法:
显然,第二种算法要简单得多40算法举例【例1.4】求100!=1*2*3*4*5*.......*99*100step1:p=1step2:i=2step3:p=p*istep4:i=i+1step5:如果i<=100,那么转入step3执行step6:输出p,算法结束跟踪上述算法的执行过程,理解变量的作用,程序设计时可用的部件和功能。41算法举例【例1.5】求1*3*5*…*101。step1:p=1step2:i=1step3:p=p*istep4:i=i+2step5:如果i<=101,那么转入step3执行step6:输出p,算法结束只需要将i的初值改为1、每次循环增加2即可42算法的特性(1)有穷性(2)确定性(3)输入:算法可以有输入,也可以没有输入,即有0个或多个输入。(4)输出(5)可行性434.算法的表示自然语言:例:如果A大于B,那么最大值为A,否则最大值为B。
伪代码伪代码用介于自然语言和计算机语言之间的文字及符号来描述算法。例:ifA大于B,then最大值为A,else最大值为B传统流程图用传统流程图表示算法比较直观,它使用一些图框来表示各种操作,用箭头表示语句的执行顺序。46N-S流程图N-S流程图又称盒图,其特点是所有的程序结构均用方框表示。475.结构化的程序设计方法1966年,Bohra和Jacopini提出了顺序结构、选择结构和循环结构三种基本结构,结构化程序设计方法使用三种基本结构组成算法已经证明,用3种基本结构可以组成解决所有编程问题的算法。48顺序结构顺序结构是指按照语句在程序中出现的先后次序执行49选择结构选择结构根据条件选择程序的执行顺序选择结构一50选择结构选择结构二51循环结构循环结构通过设定循环条件,在满足该条件时反复执行程序中的某部分语句,即反复执行循环体。循环结构1当型循环结构53循环结构2直到型循环结构54结构化程序设计方法(1)程序组织结构化(2)程序设计采用自顶向下、逐步细化、功能模块化的方法55习题与作业要求一、选择题二、算法设计三、程序设计和操作第2章Python编程与调试
57主要内容1.Python编程工具2.PythonIdle编写和调试程序3.AnacondaSpyder编程与调试1.PythonIDE集成开发环境(IntegratedDevelopmentEnvironment,IDE)是一种辅助程序开发人员进行开发工作的应用软件,往往集成了代码编写功能、语法检测功能、编译和调试功能。IDE可以帮助开发人员加快开发速度,提高开发效率。交互式解释器:交互就是一问一答解释器的功能将高级语言解释给机器听,也就是将代码转换成计算机能懂的机器码Python编程工具常用的Python编程工具PythonIdleAnacondaSpyderPycharmEclipsewithPyDev各种在线编辑器PythonIdle下载与安装IDLE是Python标准发行版的一个简单小巧的集成开发环境,包括交互命令行、编辑器、调试器等基本组件,足以应付多数应用。地址/downloads/windows/PythonIdle帮助help()函数查看模块和函数的信息。help(对象)help①查看内置函数和类型信息。help(max)help(list)help(set)help②查看模块信息。importsyshelp(sys)help②查看模块内部函数信息。importsyshelp(sys.exit)2.PythonIdle编写和调试程序启动PythonIdle,可以在Shell中运行Python命令PythonIdle编写和调试程序调整Idle中文本的字体、大小options->ConfigureIdlePythonIdleShell当命令有错时,报错误信息Idle编辑器编写和运行程序Shell中File->NewFile保存:File->Save运行程序:Run->RunModule或F5键特点:(1)语法高亮显示(2)自动缩进(4个空格)(3)单词自动完成功能(Edit->ExpandWord或者Alt+/)程序错误程序出错是难以避免的语法错误:代码违反Python语言语法规则,在运行时,Python解释器会给出提示运行时错误:逻辑错误:语法错误第1行,双引号不能是中文第2行,少一个右括号第3行,变量名2a错,缺少*第5行,逗号、右括号不能为中文第1行第2,3行第5行第5行【例2.1】语法错误。a=float(input("请输入a:“))#1b=float(input("请输入b:")#2c=2a*b
#3d=a/b
#4print("c=",c)
#5print("d=",d)
#6语法错误修改后的程序,运行结果。运行时错误输入文本“tianjin”不能转换为数字浮点数不能被0除运行时错误:程序在执行时被检测出的错误逻辑错误逻辑错误:程序没有语法错误,运行时也没问题,但是结果出错。逻辑错误往往就是算法本人有问题或者编程时误操作引起。用调试器的单步调试的方法,发现逻辑错误。Debug调试器Debug调试器暂停程序执行、单步执行程序,检查变量值,帮助分析和查找逻辑错误。Shell:Debug->DebuggerDebug调试器go:正常执行程序到结束,或到达一个断点Step:执行当前行代码后暂停,变量取值会更新;当前行代码如果是函数,则进入函数内部,执行函数内第一行代码Over:执行当前行代码,不进入函数内部Out:全速执行代码,直到从当前函数返回。Quit:停止调试。Debug调试程序(1)Shell执行”Debug->Debugger“命令,打开Debug窗口显示[DEBUGON]Debug调试程序(2)文件窗口执行“Run->RunModule”命令Debug调试程序①单击“Over”命令,执行当前行代码②在Shell中输入数据③注意观察变量的变化,查找程序逻辑错误。返回①继续。Debug调试程序程序调试完毕,再次执行Shell“Debug->Debugger”命令,显示[DEBUGOFF]断点当程序代码行很多,希望直接到达某一行,开始单步调试时,可以将该行设定为断点。(1)鼠标右键单击断点行,执行“SetBreakpoint”命令,该行变为黄色。断点(2)启动Debugger,执行Debug->Debugger“命令(3)执行”Run->RunModule”命令(4)go,程序直接停止在断点行(5)Over,调试程序Anaconda下载与安装Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。下载/products/individual3.AnacondaSpyder编程(1)打开spyder,File->Newfile,编程(2)语法错误语句左侧出现,光标在上边会显示错误提示。(3)运行时提示语法错误AnacondaSpyder编程(3)程序在运行时,会提示语法错误Spyder编程程序修改好后,单击或执行Run->Run或F5键运行程序。Spyder编程单击Varible标签,观看内存中变量取值情况可以进行变量操作,如removeallVariblesSpyder调试程序运行选中的或当前行开始调试程序运行当前行,不进入函数运行当前行或进入函数退出函数运行到断点或结束结束调试Spyder调试程序Debug菜单Spyder调试程序DebugFile或Ctrl+F5,开始调试Spyder调试程序①运行当前行(RunCurrentLine或Ctrl+F10)②输入数据③观察变量取值,发现问题返回①运行到结束结束调试Spyder调试程序-断点设定或取消断点:光标落入当前行,执行“Debug->set/clearBreakpoint”命令,或者单击行左侧。Spyder调试程序-断点DebugFile或Ctrl+F5,开始调试continue,运行到断点继续单步调试在线编辑调试网络中有很多在线编辑工具,包括手机版turtle绘图turtle库是Python的绘图的库,也称海龟作图。想象成一个小海龟,以画布中心为坐标原点、横轴x和纵轴为y的坐标系中,根据指令移动,改变海龟的位置、方向和状态,从而绘制图形。turtle库导入与使用在使用turtle库绘图之前,需要先引入turtle库。【例2.2】导入库importturtle#导入turtle库turtle.circle(100)#绘图窗体与画布turtle设置绘图主窗体的高、宽、位置。width,height:宽和高,像素数;为小数时为屏幕比例。startx,starty:举例屏幕左上角定点坐标,为空时默认为屏幕中心。setup(width,height,startx,starty)设置窗体【例2.2】设置窗体importturtle#导入turtle库turtle.setup(0.1,0.1,10,10)turtle.circle(20)#绘图importturtle#导入turtle库turtle.setup(100,100)turtle.circle(20)#绘图画布画布是tutle展开的用于绘图的区域。screensize(width,height,bg)width:宽height:高bg:背景色画布【例2.3】设置画布importturtle#导入turtle库turtle.setup(500,500)#窗体turtle.screensize(200,200,"yellow")#画布turtle.circle(100)#绘图绘图函数turtle内置的函数包括画笔状态、颜色控制、填充、移动与绘画、turtle状态等。画笔状态函数在绘图过程中,需要控制画笔的状态。命令格式功能pendown()放下笔移动,移动时绘制图形,默认时为绘制penup()提起笔移动,移动时不绘制图形pensize()绘制图形时画笔的宽度,默认为1Pen()获取画笔isdown()返回画笔是否放下的状态hideturtle()隐藏画笔形状Showturtle()显示画笔形状颜色设置画笔的颜色命令格式功能pencolor(colorstring)设置画笔颜色color(color1,color2)设置color1画笔颜色,color2填充色画笔状态颜色【例2.4】设置画笔状态颜色importturtle#导入turtle库turtle.setup(500,500)#窗体turtle.screensize(200,200,"yellow")turtle.pensize(10)#画笔宽度turtle.pencolor("red")#画笔颜色turtle.circle(100)#绘图颜色填充将一个封闭的区域用指定颜色填充,先用fillcolor()指定填充色,用begin_fill()和end_fill()将绘制封闭区域语句包括其间命令格式功能fillcolor(colorstring)设置绘图的填充色begin_fill()开始填充图形end_fill()填充完成filling()返回当前是否在填充状态颜色填充【例2.5】设置画笔状态颜色importturtle#导入turtle库turtle.setup(500,500)#窗体turtle.screensize(200,200,"yellow")turtle.pensize(10)turtle.pencolor("red")turtle.fillcolor("blue")turtle.begin_fill()turtle.circle(100)#绘图turtle.end_fill()辅助绘图控制辅助绘图控制函数,清空窗口、重置turtle状态等。命令格式功能Clear()清空turtle窗口reset()重置turtle状态done()启动事件循环,必须是绘图的最后一条语句write(s,[,font=("font-name",font-size,"font_type")])写文本,s为文本内容写文本【例2.6】设置画笔状态颜色importturtle#导入turtle库turtle.setup(500,500)#窗体turtle.screensize(200,200,"yellow")turtle.pencolor("red")turtle.write("python",font=("TimesNewRoman",60))移动与绘画函数控制画笔的前进、后退、转向、直接移动到某个位置、画圆、正多边形等。命令格式功能forward(x)向前移动x像素backward(x)向后移动x像素right(x)向右转x度left(x)向左转x度goto(x,y)将画笔移动到坐标为x、y的位置circle(x,extent=y,steps=z)x:以x为半径画圆,当x为负数时反向绘制Extent:y角度数值,画圆的一段弧Steps:整数z,绘制z条边的正多边形home()设置画笔当前位置为原点,坐标(0,0),朝向东speed(x)画笔绘制的速度,x的范围为[0,10]绘图【例2.7】画一个正方形importturtle#导入turtle模块turtle.setup(500,500)#窗体t=turtle.Pen()#创建画笔对象t.forward(100)#从中心位置向前移动100个像素t.left(90)#向左转90°t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)绘图【例2.8】画一个五角星importturtleturtle.setup(500,500)#窗体t=turtle.Pen()t.color("red")t.pensize(5)turtle.goto(0,0)turtle.speed(10)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)绘图【例2.8】设置画笔状态颜色importturtle#导入turtle库turtle.setup(500,500)#窗体turtle.screensize(200,200,"yellow")turtle.pencolor("red")turtle.pensize(5)turtle.circle(50)#画圆turtle.penup()turtle.goto(100,100)turtle.pendown()turtle.circle(50,steps=3)#三角形turtle.penup()turtle.goto(-100,100)turtle.pendown()turtle.circle(50,steps=4)#四边形turtle.penup()turtle.goto(-100,-100)turtle.pendown()turtle.circle(50,steps=6)#六边形turtle.penup()turtle.goto(100,-100)turtle.pendown()turtle.circle(50,steps=8)#八边形绘图113习题与作业要求一、选择题二、程序设计和操作第3章顺序结构程序设计
115主要内容1.顺序结构算法设计2.Python语言编程基础(CH03B)3.顺序结构程序设计顺序结构的算法设计顺序结构是结构化程序设计中最简单的控制结构,它一般包括输入数据、处理和输出数据3个步骤顺序结构的算法设计程序设计的过程一般包括以下步骤。①分析问题:分析问题的原理,找出其中的规律。②设计算法:根据分析设计解决问题的算法。③编写程序:编写程序,调试、运行程序。顺序结构的算法设计【例3.1】编写程序,输入三角形的3条边长a、b和c,求三角形的面积。(1)分析问题顺序结构的算法设计(2)设计算法学习提示:算法要求输入的3条边长能够构成一个三角形,如果运行时输入的3条边长不能构成三角形,则此程序会出错。顺序结构的算法设计(3)思考顺序结构的程序设计请参考Python语言-CH03B-Python语法基础顺序结构的程序设计【例3.51】三角形面积a=float(input("请输入a:"))b=float(input("请输入b:"))c=float(input("请输入c:"))s=(a+b+c)/2area=(s*(s-a)*(s-b)*(s-c))**0.5print("三角形面积为",area)调试要求:在PythonIdle中,执行“Debug→Debugger”菜单命令,打开Debugger调试器,运行该程序,在调试器中按下“Over”按钮逐行运行程序,观察变量的变化过程。。顺序结构的程序设计【例3.38】求解鸡兔同笼问题。已知笼子中鸡和兔的头数总共为h,脚数总共为f,问鸡和兔各有多少只?(1)分析。设鸡和兔分别有x和y只顺序结构的程序设计【例3.38】求解鸡兔同笼问题。已知笼子中鸡和兔的头数总共为h,脚数总共为f,问鸡和兔各有多少只?(1)分析。设鸡和兔分别有x和y只顺序结构的程序设计(2)分析。设鸡和兔分别有x和y只顺序结构的程序设计顺序结构的程序设计h=int(input("请输入头数h:"))f=int(input("请输入脚数f:"))x=(4*h-f)/2y=h-xprint("鸡有",x,"只,兔有",y,"只")顺序结构的程序设计【例3.39】编写程序,输入一个三位整数,将其个位、十位和百位数反序后,得到一个新的整数并输出。例如,输入整数234,输出整数432。(1)分析。首先必须求得其个位、十位和百位数234%104234//10%103234//100%102顺序结构的程序设计【例3.39】编写程序,输入一个三位整数,将其个位、十位和百位数反序后,得到一个新的整数并输出。例如,输入整数234,输出整数432。再计算得到反序后的数。输入三位整数ma=m%10b=m//10%10c=m//100%10n=a*100+b*10+c输出n顺序结构的程序设计m=int(input("请输入整数m:"))a=m%10b=m//10%10c=m//100%10n=a*100+b*10+cprint("反序后的数为",n)注意:掌握求得一个整数m,各个数位上的数的方法。输入三位整数ma=m%10b=m//10%10c=m//100%10n=a*100+b*10+c输出n131习题与作业要求一、选择题二、算法设计三、程序设计和操作第3章Python语言编程基础
133说明1.顺序结构算法设计2.Python语言编程基础(CH03B)3.顺序结构程序设计Python语法基础为了将算法编写为程序,必须先掌握在Python语言中如何表示和保存数据、如何进行计算、如何输入数据和输出结果等。如何使用Python语言编程实现算法,是学习程序设计的基础主要内容语句和注释数据类型:数字和字符串变量和常量标准的输入和输出、格式化输出算术运算赋值关系运算、逻辑运算位运算语句语句用于向计算机软硬件系统发出操作指令以完成一定任务。语句是赋值、计算、输入和输出等。a=int(input("a:"))b=2*aprint(a,b)语句①语句的换行,一行语句太长,不方便或不美观。可以用反斜杠(\)换行【例3.2】语句换行。a="富强、民主、文明、和谐是国家层面的价值目标,\自由、平等、公正、法治是社会层面的价值取向,\爱国、敬业、诚信、友善是公民个人层面的价值准则,\这24个字是社会主义核心价值观的基本内容。"print(a)行末的(\)后不能添加注释语句②同一行,写多个语句,语句间用(;)隔开a=10;b=20;c=30;print(a,b,c)Python语法python有自己的语法特点缩进分层:同一代码块中的语句必须保证相同的缩进空格数。【例3.3】语句缩进。pwd=input("密码:")#1ifpwd=="123":
#2print("密码正确。")#3print("请进入。")
#4else:
#5print("密码错误。")#6print("请离开。")
#7分层缩进如果同一个代码块中各语句的缩进空格数不同,将会报错。pwd=input("密码:")#1ifpwd=="123":#2print("密码正确。")#3print("请进入。")#4else:#5print("密码错误。")#6print("请离开。")#7注释程序的注释可用来说明程序的编写者、版本号、版本形成日期、程序的功能等信息,还可用来说明程序某部分或某条语句的功能,从而使得程序更易于理解1.单行注释(#)代码和#之间至少有一个空格area=PI*r*r#计算圆的面积
#以上语句是为了计算面积注释2.多行注释3个单引号(''')或3个双引号(""")开始和结束,可以包括多行注释语句r=5PI=3.14area=PI*r*r;'''计算圆的面积,r为半径'''"""计算圆的面积,r为半径"""print(area)Python简单数据类型数据,在计算机中也要按照一定的方式进行组织存放,以便于分配存储空间和进行运算。将数据分为多种类型,不同数据类型的存储长度、取值范围和允许的操作都不相同。Python的两类简单数据类型数字类型:123、-123、1.234字符串类型:"我爱用Python"数字数据类型4种数字数据类型包括:int(整型):123、-123float(浮点型):1.2345bool(布尔类型):True、Falsecomplex(复数类型):1.23+4.5jint(整型)整型,表示整数,不带小数点。如:123、-234、0表示方法:十进制,如123,-123二进制加前缀0b或0B,如0b1111011八进制加前缀0o或0O,如0o173十六进制加前缀0x或0X,如0x7bint(整型)【例3.4】整型数字类型print(123,-123)print(0b1111011,0o173,0x7b)整型进制转换调用函数将十进制数转换成二进制数,八进制数,十六进制数的字符串。bin(20)oct(20)hex(20)int(x,n):int("0101",2),int("173",8),int("7B",16)整型进制转换【例3.5】整数的进制转换。a=bin(123)#转换二进制b=oct(123)#转换八进制c=hex(123)#转换十六进制print(a,b,c)print(type(a),type(b),type(c))d=int("0101",2)#二进制字符串转换十进制整数e=int("173",8)#八进制字符串转换十进制整数f=int("7B",16)#十六进制进制字符串转换十进制整数print(d,e,f)float(浮点型)浮点数的表示法,包括小数点格式,指数格式。①小数点格式:
3.14123..123②指数格式:1.2345E3,表示1.2345
×
103,即123.451.2345E-3,表示1.2345
×
10-3,即0.0012345float()函数可以把整数转换成浮点数float(123)->150.0
float(浮点型)【例3.6】浮点型print(3.14,123.,1.2345E3,1.2345E-3)a=123b=float(123)#整数转换为浮点数c=float("123")#字符串转换为浮点数print(a,b,c)print(type(a),type(b),type(c))bool(布尔型)Python语言中bool型的值有:True,表示真,对应整数1False,表示假,对应整数0
内置函数bool(x),能将x转换成bool型,非0则为True,0为False。int(True)#值为1int(False)#值为0Bool(1)#值为TrueBool(4)#值为TrueBool(0)#值为Falsebool(布尔型)【例3.7】布尔型print(int(True),int(False))print(bool(1),bool(4),bool(0))print(3>2,2>3)complex(复数类型)复数类型用于表示数学中的复数,由实数(real)部分和虚数(imag)部分构成表示形式为real+imagj
或real+imagJreal和imag都是浮点数1.23+0.9j3J3+1.23E3J1.23E-5J
complex(复数类型)使用real与imag属性,可以分别取出实部和虚部。如:(1.23+0.9j).real(1.23+0.9j).imag可以使用complex(real,imag)函数将两个数转换为复数complex(2.4,1.3)
complex(复数类型)【例3.8】复数类型print(1.23+0.9j,3J,3+1.23E3J,1.23E-5J)a=1.2+3.4jprint(a.real,a.imag)b=complex(2.6,1.3)print(b)字符串类型使用单引号、双引号或三引号标识字符串。(1)单引号标识字符串。单引号标识的字符串不能包含单引号【例3.9】单引号字符串print('IlikePython!')#正确的字符串print('Let'sprogram!')#错误的字符串,不可以包括单引号字符串类型(2)双引号标识字符串。双引号标识的字符串不能包含双引号。【例3.10】双引号字符串。print("IlikePython!")
#正确的字符串print("Let'sprogram!")#正确的字符串,可以包括单引号print("Let"sprogram!")#错误的字符串,不可以包括双引号字符串类型(3)三引号标识字符串,支持多行,保留换行、缩进等格式,但不可以包括同样的三引号【例3.11】三引号字符串print('''Let'sprogram!''')#正确的字符串print("""Let's'''program!""")#正确的字符串,可以包括不同的三引号print("""Let'sgo"""home!""")#错误的字符串,不能包括同样的三引号转义字符转义字符以“\”为前缀,表示特殊含义,避免字符的二义性。转义字符说明转义字符说明\\反斜线\n换行符,将光标移到下一行开头。\'单引号\r回车符,将光标移到本行开头。\"双引号\t横向制表符,即Tab键\在字符串行尾,即一行未完,转到下一行继续写\b退格(Backspace)转义字符转义字符以“\”为前缀,表示特殊含义,避免字符的二义性。【例3.12】转义字符print('Let\'sprogram!')#正确print("Let\"sprogram!")#正确转义字符【例3.13】使用转义字符标识特殊字符。print('Ilike\nPython!')#换行print('Ilike\tPython!')##横向制表符print('I\like\Python!')#\换行续写print('d:\\Python\\eg')#\\print(r'd:\\Python\\eg')#原字符字符串索引字符串索引就是字符的序号,分为正索引和负索引。正索引从左至右标记字符,最左边的字符索引是0,第二个是1,以此类推。负索引从右向左标识字符,最右边的字符索引为-1,第二个为-2,以此类推。字符串Python正索引012345负索引-6-5-4-3-2-1字符串索引操作索引操作:使用下标(索引值)取得某个指定字符<字符串>[下标]【例3.14】索引操作print("Student"[0],"Student"[1])a="Student"print(a[-1],a[-3])字符串索引操作Python不支持改变字符串中某个字符的值,否则会报错【例3.15】字符串不允许修改字符a="Student"a[1]="x"#不允许修改字符的值字符串切片操作字符串切片操作:截取字符串片段,得到一个子串<字符串>[start:end]start:开始位置end:结束位置,不包括第end位置的字符【例3.16】字符串切片a="Student"print(a[1:4])print(a[:4])#省略开始位置print(a[1:])#省略结束位置字符串连接操作字符串连接:“+”将两个字符串连接起来【例3.17】字符串连接print("I"+"like"+"Python!")print("我爱学"+"编程!")字符串复制操作字符串复制:使用乘号(*)生成重复字符串。【例3.18】字符串复制print("Python!"*3)#重复3次print("中国加油"*2)
#重复2次字符串常用方法在Python中提供了丰富的操作方法。方法说明capitalize()将字符串首字母大写,其余小写lower()将字符串转换成小写upper()将字符串转换成大写rstrip()移除字符串右侧空白lstrip()移除字符串左侧空白strip()移除字符串两侧空白find(sub[,start[,end]])返回sub在字符串中的位置count(sub[,start[,end]])返回sub在字符串中出现的次数replace(old,new)将字符串中old替换成new字符串常用方法【例3.19】字符串操作方法a="IlikeProgramming!"print(a.lower())#大写字母变小写print(a.upper())#小写字母变大写print(a.find("mm"))#查找”mm”在字符串中的位置print(a.count("i"))#查找”i”在字符串中的位置print(a.replace("i","X"))#将字符串中的”i”在替换为"X"数据类型转换Python可以借助函数进行类型转换。函数名功能说明示例bool(x)返回x转换的布尔值bool('a')、bool(1)、bool(0)int(x)返回x转换的整数int("3")、int(3.6)float(x)将x转换的浮点数float("3.14")、float(3)complex(real[,imag])complex(x)创建real+imagJ的复数;或者将字符串转换为复数complex("1+2j")complex(1,2)str(x)将x转换为字符串str(123)、str(3.14)ord(x)返回字符x对应的ASCII码值ord("a")、ord("A")chr(x)返回整数x代表的ASCII对应的字符chr(97)、chr(65)bin(x)将整数x转换成二进制字符串bin(123)oct(x)将整数x转换成八进制数字符oct(123)hex(x)将整数x转换成十六进制字符串hex(123)数据类型转换【例3.20】常用数据类型转换函数。a=bool('a');b=bool(1);c=bool(0)print(a,b,c,type(a))a=int("3");b=int(3.6)print(a,b,type(a))a=float("3.14");b=float(3)print(a,b,type(a))a=complex("1+2j");b=complex(1,2)print(a,b,type(a))a=str(123);b=str(3.14)print(a,b,type(a))a=ord("a");b=ord("A")print(a,b,type(a))a=chr(97);b=chr(65)print(a,b,type(a))print(123,bin(123),oct(123),hex(123))数学函数函数说明举例abs(x)求x的绝对值;如果x是复数,则返回复数的模abs(-10),返回值为10divmod(a,b)分别取得商和余数,返回元组。divmod(20,6),返回值为(3,2)pow(x,y)返回x的y次幂。pow(2,3),返回值为8round(x[,n])对浮点数x按照四舍五入保留n位小数round(3.1415,2),返回值为3.14max(x1,x2,…)返回给定参数的最大值,参数可以为序列。max(2,3,5,1),返回值为5min(x1,x2,…)返回给定参数的最小值,参数可以为序列。min(2,3,5,1),返回值为1eval(str)将字符串中的表达式求值,返回计算结果。eval("1+2+3+4"),返回值为10内置的数学函数能够完成数学计算.数据类型转换与数学函数【例3.21】常用数学函数print(abs(-10),abs(2+3j))print(divmod(20,6))print(pow(2,3))print(round(3.1415,2))print(max(2,3,5,1),min(2,3,5,1))print(eval("1+2+3+4"))变量和常量在程序执行过程中,其值可以改变的量称为变量。变量变量在赋值的同时被创建,变量不需要事先声明变量可以被多次赋值,类型是最后赋值的类型变量必须先赋值后使用[例3.15]变量age=2022#intprint(age,type(age))age="2022年"#stringprint(age,type(age))age=234.56#floatprint(age,type(age))print(a)#变量必须先赋值后使用type()获取变量类型变量可以同时为多个变量赋值可以同时为多个变量赋不同的值变量间可以相互赋值[例3.16]变量x=y=z=100print(x,y,z)name,age="张三",20print(name,age)name2=name#变量间相互赋值print(name2)常量在程序执行过程中,其值不能改变的量称为常量常量分为:字面常量:343.14“HelloPython”符号常量:Python中通常用全部大写变量名表示常量注意:PI实际上仍然是变量,可以被改变。PI=3识符与关键字标识符:变量、函数等对象命名的有效字符序列。标识符的命名规则:(1)标识符的第1个字符必须是字母、数字、下划线(_),并且中间不能有空格。合法:max、min、a、b3、_total、Student、_1_2_3、w_3不合法:3abc、M.D.John、!eer、abc?d、a>b
标识符与关键字【例3.23】标识符。max=123;_total=345#合法标识符3abc=5#不合法标识符M.D.John=6#不合法标识符标识符与关键字(2)Python的标识符区分大小写。例如:变量名abc和ABC指的是不同变量。【例3.24】标识符区分大小写。abc=123ABC=456print(abc,ABC)#abc和ABC标识不同变量标识符与关键字(3)在Python语言中,标识符也可以包括非ASCII码字符,如汉字。【例3.25】汉字标识符。长=123宽=456面积=长*宽关键字具有特定含义并有专门用途的标识符称为关键字。Python不允许使用关键字相同的标识符,作为变量名。例如:关键字可以使用以下命令查看Python的关键字。
python关键字importkeywordkeyword.kwlistPython标准输入/输出标准输入:通过键盘输入数据,input()标准输出:在显示器上输出数据,print()Python标准输入内置函数input()接受键盘输入的字符串。格式:[prompt]:提示用户需要输入的提示信息。input()返回的是字符串类型数据,如果需要其他类型数据,就需要进行类型转换。input([prompt])标准输入【例3.27】标准输入函数a=input("请输入字符串:")b=int(input("请输入整数:"))c=float(input("请输入浮点数:"))print(a,b,c)(1)启动debug(debug->debugger)(2)调试程序(Run->RunModule)(3)Over:单步调试程序,查看变量值。标准输出print()函数输出数据,格式:①value:1个或多个数据对象,逗号隔开②sep:多个输出信息之间的分隔符,默认为空格③end:结束符号,默认为换行符print(value1[,value2,...][,sep=''][,end='\n'])标准输出[例3.19]print()函数a=123b=456print(a,b)print(a,b,sep=',')print("我喜欢的编程语言","Python")print("我喜欢的编程语言","Python",sep=',',end='$')print("HelloPython")格式化输出在很多应用中,需要将数据按照一定格式输出。Python语言有3种方法:字符串格式占位符format()内置函数字符串的format()方法注意:因学时、篇幅有限,后两种方法省略。格式占位符输出用%连接格式字符串与输出项。格式字符串由普通字符和格式占位符组成。格式字符串%(输出项1,输出项2,......输出项n)格式占位符输出print("输出值是%s,%s,%s"%(1.2,3.4,"Thisisastring"))格式符号%s可以将各种类型数据转换为字符串输出普通字符原样输出格式占位符规定输出项的格式,由“%”和格式字符组成,如“%d”“%f”和“%s”等。每一个占位符对应右边的一个输出项。格式占位符输出格式占位符输出【例3.29】格式占位符%。print("12345678901234567890")#参考位置print("a=%d,b=%d"%(123,456))print("%d,%o,%x"%(123,123,123))#十进制,八进制,十六进制print("%5d,%5d,"%(123,234))#右对齐print("%-5d,%-5d,"%(123,234))#左对齐print("%8.3f,"%(123.456789))#占8列,3位小数,右对齐print("%-8.3f,"%(123.456789))#占8列,3位小数,左对齐print("%08d,%08d,"%(12,23))#占8列,空位补0print("%8s,%-8s,"%("abc","abc"))fomat函数输出format函数将一个输出项格式化。一般格式为:format(输出项[,格式字符串])说明:(1)省略格式字符串,等价于输出str(输出项)。print(format(123.45678),format(123),format(3+4j))fomat内置函数(2)根据输出项的类型,按照格式字符串中的格式控制符格式化。'd'十进制格式'b'二进制格式'o'八进制格式'x'或'X'十六进制格式,字母小写或大写'f'或'F'定点编号格式,'e'或'E'科学格式,使用字母e或E'g'或'G'通用格式(将大写E用作科学计数法)'0m.n''0m.nf'占m个字符空间,保留n位小数,宽度不足时补0;'0md'占m个字符空间,不足时补0。fomat内置函数【例3.30】format()函数输出。print("123456789012345678901234567890")print(format(123),format(123,'d'),format(123,'8d'),format(123,'08d'))print(format(123,"b"),format(123,"o"))print(format(123,"x"),format(123,"X"))print(format(123.45678,'8.2f'),format(123.45678,'08.2f'))print(format(123.45678,'e'),format(123.45678,'E'))print(format(123.45678,'g'),format(123.45678,'G'))print(format(1234567.8,'g'),format(1234567.8,'G'))fomat内置函数(2)根据输出项的类型,按照格式字符串中的格式控制符格式化。'c'将值转换为相应的unicode字符'%'百分百格式','或'_'使用逗号或下划线作为千位分隔符'<n'左对齐结果(宽度为n的可用空间内)'>n'右对齐结果(宽度为n的可用空间内)'^n'居中对齐结果(宽度为n的可用空间内)''在正数前使用空格'+'使用加号来指示结果是正还是负'-'负号仅用于负值fomat内置函数【例3.31】format()函数输出。print("123456789012345678901234567890")print(format(97,'c'),format(0.58,'%'),)print(format(123456.789,','),format(123456.789,'_'))print(format(1234567890))print(format(123,"<10"))#左对齐print(format(123,"^10"))#居中print(format(123,">10"))#右对齐print(format(123,""),format(-123,""))
#正数前加空格print(format(123,"+"),format(-123,"+"))#正数前加+print(format(123,"-"),format(-123,"-"))#负数前加-字符串format方法输出Python2.6开始,新增了一种字符串的format方法str.format(),增强了字符串格式化的功能。使用{}作为占位符。
str.format(),格式化能力更强,更易用,读者可以更多使用,减少使用格式说明符%方式。字符串format()函数一般格式:(1)位置映射方法(2)索引号访问方法(3)关键字映射访问方法与format函数相似,也可以设置进制转换、精度、对齐等。str.format(输出项1,输出项2[,.......])(1)位置映射方法不设置指定位置,按默认顺序映射。【例3.32】位置映射法。print("{}{}{}".format("Hello","Python",3.9))print("{}{}{}".format(123,-123,123.456789))print("今天是{}学习{}第{}天。".format("小明","Python",100))(2)索引号映射方法使用索引号映射多个输出项。索引号要从0整数递增,如0,1,2,3,不可以跳跃,不可以从1开始,否则报错。print("{1}{0}{1}{2}".format("Hello","Python",3.9))print("{1}{0}{2}".format(123,-123,123.456789))print("今天是{1}学习{0}第{2}天。".format("Python","小明",100))(3)关键字映射方法使用关键字映射多个输出项。关键字参数要与参数的关键字对应上。print("{name}同学,今年{age}岁。".format(name="小明",age=6))print("地址:{ip}:{port}".format(ip="",port=8080))(3)关键字映射方法关键字的输出项可以使用字典,前边加上**。【例3.35】关键字映射方法。stu={'name':'小明','age':6}#字典add={'ip':'','port':8080}
#字典print("{name}同学,今年{age}岁。".format(**stu))print("地址:{ip}:{port}".format(**add)){:格式控制符}使用“{:格式控制符}”设置进制转换、精度、对齐等,与format函数的格式控制符相同,【例3.36】格式控制符。print("123456789012345678901234567890")print("{:d}{:8d}{:08d}".format(123,123,123))print("{:b}{:o}{:x}{:X}".format(123,123,123,123))print("{0:8.2f}{0:08.2f}".format(123.45678))print("{0:<10}".format(123))#左对齐print("{0:^10}".format(123))#居中print("{0:>10}".format(123))#右对齐运算符和表达式表达式描述对哪些数据进行什么样的运算,它由运算符和操作数组成。表示运算的符号称为运算符,参与运算对象称为操作数,操作数可以是常量、变量或函数等。例如:
2+3运算符运算符包括:算术运算符关系运算符逻辑运算符赋值运算符位运算符算术运算符运算符概述举例a=3,b=4+加法a+b值为7-减法a-b值为-1*乘法a*b值为12/除法a/b值为0.75%求余(模)a%b值为3**幂,a**b,a的b次方a**b值为81//整除,返回商的整数部分b//a值为1a//b值为0算术运算符:进行算术运算。算术运算符和表达式[例3.25]算术运算a=3;b=4print(a+b)#值为7print(a-b)#值为-1print(a*b)#值为12print(a/b)#值为0.75print(a%b)#值为3print(a**b)#值为81print(b//a)#值为1print(a//b)#值为0运算符优先级将数学表达式描述成算术表达式。可以用"()"将先运算的括起来,可以有很多层。(a+b)**2/(a*(b+c))[例3.38]表达式a=3b=4c=5d=(a+b)**2/(a*(b+c))print(d)赋值运算符使用赋值运算符“=”连接的式子称为赋值表达式,其功能是计算右边表达式的值并赋给左边的变量。变量=表达式a=3*2#a的值为6a=a+1#a的值为75=3+5#报错,左边必须是变量a+2=6#报错,左边必须是变量赋值表达式的左边必须是变量复合赋值运算符在赋值运算符“=”之前加上其他双目运算符可以构成复合赋值运算符。变量双目运算符=表达式相当于变量=变量运算符(表达式)运算符概述举例a=3,b=4=赋值+=加法赋值a+=b相当于a=a+b值为7-=减法赋值a-=b相当于a=a-b值为-1*=乘法赋值a*=b相当于a=a*b值为12/=除法赋值a/=b相当于a=a/b值为0.75%=求余赋值a%=b相当于a=a%b值为3**=指数赋值a**=b相当于a=a**b值为81//=整除赋值b//=a相当于b=b//a值为1a//=b
相当于a=a//b值为0复合赋值运算符[例3.26]复合赋值运算符a=3;b=4a+=bprint(a)#值为7a=3;b=4a*=b+2#相当于a=a*(b+2)print(a)#值为18(1)复合赋值表达式的左边必须是变量。(2)将复合赋值符右侧的表达式看做一个整体。关系运算符关系运算符,用于比较两个操作数的关系,结果只能是True或False。用关系运算符连接两个表达式称为关系表达式。运算符概述举例a=3,b=4==是否相等a==b值False!=是否不相等a!=b值True>左数>右数为Truea>b值False<左数<右数为Truea<b值True>=左数>=右数为Truea>=b值False<=左数<=右数为Truea<=b值True关系运算符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度碎石加工原料运输服务合同2篇
- 2024年度农产品批发市场设施建设与运营管理合同3篇
- 2024年市场调研协作合同3篇
- 2024年度个人车位租赁合同模板6篇
- 2024年度全职妈妈离婚前家庭财产规划合同3篇
- 2024年度许可使用合同:关于商标许可使用事宜3篇
- 2024至2030年中国高温耐磨闸阀行业投资前景及策略咨询研究报告
- 2024至2030年中国机用工具行业投资前景及策略咨询研究报告
- 2024至2030年中国市政工程建设行业投资前景及策略咨询研究报告
- 2024至2030年中国IC卡门锁行业投资前景及策略咨询研究报告
- 肿瘤管理中心规章制度范本
- 幼儿园故事课件:《下雪了》
- 高速公路景观及绿化设计指南
- 人教版小学六年级上册数学课本所有操作题
- 2022-2023学年成都市高二上英语期末考试题(含答案)
- 线路施工质量验收及评定范围划分表
- 北师大版二年级下册口算题大全(全册齐全)
- 亨利爱帮忙 绘本课件
- 上海证券交易所董事会秘书资格考试题库和答案-完整版
- 大秦线更换道岔工程施工组织设计
- 建设工程造价咨询报告参考模板
评论
0/150
提交评论