




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python语言程序设计1Python语言简介2Python语法基础3-1程序结构3-2选择结构3-3循环结构4-1Python典型数据类型4-2Python典型数据类型5Python函数与模块6Python文件7Python图形绘制全套可编辑PPT课件
本课件是可编辑的正常PPT课件Python语言简介Python语言发展历史Python语言特点Python语言应用Python下载安装Python编程环境简介Python交互式帮助Python示例本课件是可编辑的正常PPT课件Python语言发展历史创始人:GuidovanRossum(荷兰,吉多·范罗苏母)时间地点:1989年圣诞节期间在阿姆斯特丹创造Python第一个版本于1991年初公开发行。Python2.0于2000年10月发布,增加了许多新的语言特性。Python3.0于2008年12月发布,此版本不完全兼容Python2.0,导致Python2.0与Python3.0不兼容。Python3.6版在2016年发布。Python3.11版在2023年发布。经过30多年的研究、应用、改进,已经在很多领域创建了满足用户需求的应用软件包,是编程人员最喜欢的计算机编程语言之一。本课件是可编辑的正常PPT课件Python语言特点Python是自由软件的丰硕成果之一Python是一种面向对象的解释性语言Python是一种脚本语言Python语言免费、语法简洁、跨平台、可移植和扩展、通用灵活简单易学:非计算机专业的入门语言功能丰富:丰富的API、免费库、“gluelanguage”本课件是可编辑的正常PPT课件Python语言的应用1.Web开发Python语言支持Web网站开发,比较流行的开发框架有web2py、django等。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
利用py2exe模块可以将Python程序转换为.exe可执行程序,使得Python程序可以脱离Python系统环境来运行。2.网络编程Python语言提供了socket模块,对Socket接口进行了二次封装,支持Socket接口的访问;还提供了urllib、cookielib、httplib、scrapy等大量模块,用于对网页内容进行读取和处理,并结合多线程编程以及其他有关模块可以快速开发网页爬虫之类的应用程序。本课件是可编辑的正常PPT课件Python语言的应用3.科学计算与数据可视化Python中用于科学计算与数据可视化的模块有很多,例如NumPy、SciPy、SymPy、Matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的应用领域包括数值计算、符号计算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。4.数据库应用Python数据库模块有很多,例如,可以通过内置的sqlite3模块访问SQLite数据库,使用pywin32模块访问Access数据库,使用pymysql模块访问MySQL数据库,使用pywin32和pymssql模块来访问SQLSever数据库。本课件是可编辑的正常PPT课件Python语言的应用5.多媒体开发PyMedia模块是一个用于多媒体操作的Python模块,可以对包括WAV、MP3、AVI等多媒体格式文件进行编码、解码和播放;PyOpenGL模块封装了OpenGL应用程序编程接口,通过该模块可在Python程序中集成二维或三维图形;PIL(PythonImagingLibrary,Python图形库)为Python提供了强大的图像处理功能,并提供广泛的图像文件格式支持。6.电子游戏应用Pygame就是用来开发电子游戏软件的Python模块,在SDL库的基础上开发,可以支持多个操作系统。使用Pygame模块,可以在Python程序中创建功能丰富的游戏和多媒体程序。本课件是可编辑的正常PPT课件Python语言的应用7.Python在人工智能的应用在人工智能领域,Python已经成为了事实上的标准语言。很多机器学习和深度学习的框架都使用Python作为主要开发语言,比如谷歌的TensorFlow和Facebook的PyTorch。这些框架提供了大量的API和工具,使得我们可以快速地搭建和训练机器学习模型。同时,Python也为研究者和工程师们提供了方便的工具,比如JupyterNotebook和IPythonshell,使得数据分析和模型开发更加灵活和高效。本课件是可编辑的正常PPT课件Python下载()本课件是可编辑的正常PPT课件本课件是可编辑的正常PPT课件编程环境Python自带IDLE集成开发环境其他IDE:如PyCharm、PyScripter、Notepad等本课件是可编辑的正常PPT课件Python的命令执行方式——单条语句启动Python解释器后,可以直接在其提示符(>>>)后输入语句。例如,先在提示符>>>后输入一个输出语句,下一行将接着输出结果。本课件是可编辑的正常PPT课件用IDLE创建Python程序——多条语句可在IDLE界面中使用菜单“File”→“NewFile”命令启动编辑器(图所示),来创建一个程序文件,输入代码并保存为文件(务必要保证扩展名为“.py”)。本课件是可编辑的正常PPT课件PyCharmPython集成开发环境PyCharm是用于Python脚本语言的最流行的IDE。PyCharm在以下方面为其用户和开发人员提供了一些最佳功能
代码完成和检查高级调试支持Web编程和框架等本课件是可编辑的正常PPT课件Python交互式帮助系统在解释器界面输入help(),进入交互式帮助系统。输入要提供帮助的模块或函数。退出:quit。本课件是可编辑的正常PPT课件简单的Python程序1、交互式在shell窗口命令提示符后输入:print(“Hello,world!”)回车。2、文件式在图形界面中输入语句:print("Hello,world!")“File”→“Save”,保存为.py文件“Run”→“RunModule”,运行程序本课件是可编辑的正常PPT课件例——华氏温度、摄氏温度转换问题:想编制一款温度转换的小程序,实现华氏温度和设施温度的转换。该如何处理呢?思路:转数学问题1、弄清转换公式2、思考解决步骤3、编程实现公式:华氏温度=摄氏温度×9/5+32摄氏温度=(华氏温度-32)×5/9思路输入摄氏温度
输入华氏温度按公式计算华氏温度
按公式计算摄氏温度输出华氏温度
输出摄氏温度本课件是可编辑的正常PPT课件华氏温度与摄氏温度转换代码本课件是可编辑的正常PPT课件第2章Python语法基础
Python程序组成Python程序由一个或多个模块(后缀为.py的源文件等)组成。模块包含语句,语句是Python程序的基本构成元素。语句通常包含表达式,表达式由操作数和运算符构成,用于创建和处理对象。
例2.1已知两条直角边,求三角形周长。Python语言编码规范标识符命名:由字母、数字、下划线、汉字等字符组成。不能使用系统关键字,首字母不能用数字,区分大小写。选取的名称应该能够清楚地说明该变量、函数、类、模块等所包含的意义。代码缩进:一种是采用制表符(Tab键),另一种是采用若干个空格。a=0ifa<1:a=3语句分隔:一般一条语句一行。如果在一行中要书写多条语句,就必须使用分号进行分隔。 x=3;y=4一条语句分多行书写,需要使用反斜杠(\)添加到行末来续行。 print("C1center:%sraidus:%s"%\ (c1.getCenterPosition(),cl.getRadius()))注释:单行:#多行:三引号Python基本数据类型1数值类型Python数值类型用于存储数值。整型(int):通常被称为是整型或整数,是正或负整数,不带小数点。浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.78e2就是2.78x102=278)在混合计算时,Python会把整型转换成为浮点数。复数(complex):复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的虚部以字母j或J结尾。如:2+3j。2.字符串型Python使用单引号、双引号、三引号来表示字符串。(字符串常量)Python中的字符串常量值不能改变。需要在字符中使用特殊字符时,Python用反斜杠(\)转义字符3.布尔类型布尔类型只有True和False两种值。在Python中,布尔类型还可以与其他数据类型做and、or和not运算,这时下面的几种情况会被认为是FALSE:为0的数字,包括0,0.0;空字符串‘’,“”;表示空值的None;空集合,包括空元组(),空序列[],空字典{};其他的值都为TRUE。例如:a='python'print(aandTrue)#结果是Trueb=''print(borFalse)#结果是False在Python中,逻辑值True和False作为数值,则分别是整型值1和0参与运算。例如:>>>x=False>>>a=x+(5>4)#结果a是1>>>b=x+5#结果b是54.空值
空值是Python里一个特殊的值,用None表示。它不支持任何运算也没有任何内置函数方法。None和任何其他的数据类型比较永远返回False。在Python中未指定返回值的函数会自动返回None。常量和变量常量就是值不能变的量,比如常用的数学常数π就是一个常量。在Python中,通常用大写字母命名常量,如:PI=3量变量在程序运行中,值可以发生变化。变量使用前需要命名。变量名必须是英文字母、数字和_的组合,且不能用数字开头,比如:a,a123,a_9,_abc
,123a(错误)在Python中,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:a=123 #a是整数
注:此处等号=是赋值a='ABC' #a变为字符串运算符与表达式Python语言支持运算符有以下几种类型。•算术运算符•比较(即关系)运算符•赋值运算符•逻辑运算符•位运算符•成员操作符•标识操作符运算符与表达式1.算术运算符算术运算符实现数学运算,Python语言算术运算符如表2-5所示。假设其中变量a=10和变量b=20。2.关系运算符关系运算符用于两个值进行比较,运算结果为True(真)或False(假)。Python中的关系运算符如表2-6所示。假设其中变量a=10和变量b=20。3.逻辑运算符Python中提供了三种逻辑运算符,它们是:and(逻辑与,二元运算符)or(逻辑或,二元运算符)not(逻辑非,一元运算符)4.赋值运算符1)赋值:变量=表达式2)复合赋值:+=,-=,*=,/=,//=,%=,**=等 x+=5等价于x=x+53)多变量赋值链式赋值:变量1=变量2=……=变量n=表达式
例如:a=b=c=1同步赋值:变量1,变量2,……,变量n=表达式1,表达式2,……,表达式n
例如:a,b,c=1,2,"runoob"特别注意:同步赋值可以实现交换:a,b=b,a5.位运算符
位(bit)是计算机中表示信息的最小单位,位运算符作用于位和位操作。Python中位运算符如下:按位与(&)、按位或(|)、按位异或(^)、按位求反(~)、左移(<<)、右移(>>)。位运算符是对其操作数按其二进制形式逐位进行运算。a= 00111100b= 00001101a&b= 00001100a|b= 00111101a^b= 00110001~a= 110000116.Python成员运算Python成员运算符判断序列中是否有某个成员。成员运算符如表2-9所示。7.Python标识运算符标识符比较两个对象的内存位置。
表达式表达式是一个或多个运算的组合。Python语言的表达式与其他语言的表达式没有显著的区别。每个符合Python语言规则的表达式的计算都是一个确定的值。对于常量、变量的运算和对于函数的调用都可以构成表达式。在后续章节中介绍的序列、函数、对象都可以成为表达式一部分。运算符优先级在一个表达式中出现多种运算时,将按照预先确定的顺序计算并解析各个部分,这个顺序称为运算符优先级。内置函数函数就是程序中一段包装起来的具有特定功能的代码。内置函数(也称内建函数)指的是不需要导入任何模块即可直接使用的函数。函数通过函数名和参数列表进行调用,通过返回值向外部返回结果。类型转换函数:chr(97)ord(‘a’)str(3.15)int(3.3)数学运算函数:abs(x)max(3,2,5,1)pow(x,y)eval函数eval(expression),接收运行一个字符串表达式,返回表达式的结果值。使用方法:(1)简单的计算用法 例:eval("2+3"),运行结果为5(2)与其它函数结合使用,比如结合input函数使用。 例:m=eval(input(“”)),可以将用input函数输入的字符串转为对应的数据类型。模块与函数Python使用模块将代码封装起来。除了Python的内置函数之外,Python标准库所提供的函数均被封装在各个模块中。要调用模块中的函数(非内置函数),需要在代码顶部使用import语句导入该模块。(1)import模块名(2)from模块名import函数名/*math模块random模块标准输入/输出1.标准输入
input([提示字符串])2.标准输出
(1)print(表达式)(2)print([输出项1,输出项2,……,输出项n)][,sep=分隔符][,end=结束符])3.格式化输出(简单介绍,详细信息请参考教材相应内容)
(1)利用字符中格式化运算符%print(‘这个商品的价格是¥%.2f’%7.8)保留2位小数
(2)利用format()内置函数
print(format(15,“x”)),十六进制输出
print(format(65,“c”)),输出字符
print(format(3.145,“f”))输出浮点数
(3)利用字符串的format()方法
print(‘{0:.2f},{1}’.format(3.145,500)),第0个数保留2位小数,第1个数格式不变3.15,500Python字符串字符串是一个字符序列。在Python中,字符串常量是用单引号、双引号或三引号括起来的若干个字符,字符串变量是用来存放字符串常量的变量。字符串数据中的字符可以是计算机系统中允许使用的任何字符。字符串数据在应用中是大量存在的,例如统计一篇英文文章中不同英文字母出现的次数、按姓名排序、查找关键字等。下面介绍几个字符串相关操作和方法。字符串操作1.字符串长度使用len()函数,可以确定字符串包含的字符个数,即字符串的长度。例如:>>>len("Hello")5>>>len("中国")22.字符串连接操作(1)基本连接操作s1+s2(2)重复连接操作s*n或n*s例:
s1+s2+…+sn
其中,s1,s2,…sn,均是一个字符串,表达式的值也是一个字符串。
例如: >>>"Sub"+"String" 'SubString’ >>>'ABCD’*2 'ABCDABCD'3.字符串的索引为了实现索引,需要对字符串中的字符进行编号,最左边字符的编号为0,最右边字符的编号比字符串的长度小1。Python还支持在字符串中使用负数从右向左进行编号,最右边的字符(即倒数第1个字符)的编号为-1,字符串变量名后接用中括号括起来的编号即可实现字符串的索引。例如:>>>s="Hello">>>print(s[0],s[-4])He4.字符串的分片字符串的分片(或切片)就是从给定的字符串中分离出部分字符,这时可以使用以下形式的字符串索引编号。
i:j:k其中,i是索引起始位置,j是索引结束位置但不包括位置上的字符,索引编号每次增加的步长为k。例如:>>>s="HelloWorld!">>>print(s[0:5:2])Hlo例利用字符串分片方法将一个字符串中的字符按逆序打印出来。程序如下:s1=input("pleaseenterastring:")s2=s1[::-1]print(s2)程序输出结果如下:pleaseenterastring:ABCDEFFEDCBA5.字符串逻辑操作字符串的逻辑操作是指字符串参与逻辑比较,其操作的结果是一个逻辑量,通常用于表达字符处理的条件。(1)关系操作(比较)(2)成员关系操作字符串的成员关系操作包括in和notin操作,一般格式为:字符串1[not]in字符串2该操作用于判断字符串1是否属于字符串2,其返回值为True或False。例如:>>>"SHANGHAI"<"SHANKONG"True#因为第5个字符“G”小于“K”,所以前一字符串小于后一字符串。>>>'a'in'abc'#True>>>'a'notin'abc'#False字符串方法方法(method)和前面提到的函数(function)类似,都是由若干语句组成的可完成一定功能的程序段。函数是面向过程程序设计的概念,方法是面向对象程序设计的概念。方法本质上也是函数,但方法要依附于对象。函数可以通过函数名直接调用,如ord('A'),而方法则要通过对象名和方法名组合来调用,一般形式为:对象名.方法名(参数)。在Python中,一个具体的字符串可以看成一个对象。字符串对象是不可改变的,也就是说在Python创建一个字符串后,不能改变这个字符串中的某一部分。使用任何字符串方法改变字符串后,都会返回一个新的字符串,原字符串并没有变化。如:对于字符串"ab","ab".upper()的运算结果是"AB",但原字符串"ab"并不改变。假设s是一个字符串。其方法的引用形式:s.方法名([参数])(1)字母大小写转换
s.upper():全部转换为大字字母。
s.lower():全部转换为小写字母。
s.swapcase():字母大小写互换。
s.capitalize():句子首字母大写,其余小写。
s.title():单词首字母大写。例
字母大小写转换函数使用示例。s='PythonProgram'print(s.lower())#变小写pythonprogramprint(s.upper())#变大写PYTHONPROGRAMprint(s.swapcase())#大小写互换pYTHON
pROGRAMprint(s.capitalize())#句子开始字母大写Pythonprogram#下条语句中使用了格式化输出,功能是单词首字母大写print('{:s}title={:s}'.format(s,s.title()))#结果PythonProgramtitle=PythonProgram假设s是一个字符串。其方法的引用形式:s.方法名([参数])(2)字符串搜索①s.find(substr,[start,[end]]):返回s中出现substr的第1个字符的编号,如果s中没有substr则返回-1。start和end作用就相当于在s[start:end]中搜索。②s.index(substr,[start,[end]]):与find()相同,只是在s中没有substr时,会返回一个运行错误。③s.rfind(substr,[start,[end]]):返回s中最后出现的substr的第1个字符的编号,如果s中没有substr则返回-1,也就是说从右边算起的第1次出现的substr的首字符编号。④s.rindex(substr,[start,[end]]):与rfind()相同,只是在s中没有substr时,会返回一个运行时错误。⑤s.count(substr,[start,[end]]):计算substr在s中出现的次数。⑥s.startswith(prefix,[start,[end]]):是否以prefix开头,若是返回True,否则返回False。⑦s.endswith(suffix,[start[end]]):以suffix结尾,若是返回True,否则返回False。例
字符串搜索函数使用示例。程序如下:s='PythonProgram'print('{:s}findnono={:d}'.format(s,s.find('nono')))print('{:s}findt={:d}'.format(s,s.find('t')))print('{:s}findtfrom{:d}={:d}'.format(s,1,s.find('t',1)))print('{:s}findtfrom{:d}to{:d}={:d}'.format(s,1,2,s.find('t',1,2)))print('{:s}rfindt={:d}'.format(s,s.rfind('t')))print('{:s}countt={:d}'.format(s,s.count('t')))(3)字符串替换
s.replace(oldstr,newstr,[count]):把s中的oldster替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换。
s.strip([chars]):把s中前后chars中有的字符全部去掉,可以理解为把s前后chars替换为None。默认去掉前后空格。
s.lstrip([chars]):把s左边chars中有的字符全部去掉。默认去掉左边空格。
s.rstrip([chars]):把s右边chars中有的字符全部去掉。默认去掉右边空格。
s.expandtabs([tabsize]):把s中的tab字符替换为空格,每个tab替换为tabsize个空格,默认是8个。例字符串替换函数使用示例。程序如下:s='PythonProgram'print('{:s}replacetto*={:s}'.format(s,s.replace('t','*')))print('{:s}replacetto*={:s}'.format(s,s.replace('t','*',1)))print('{:s}strip={:s}'.format(s,s.strip()))print('{:s}strip={:s}'.format(s,s.strip('Pm')))运行结果如下:PythonProgramreplacetto*=Py*honProgramPythonProgramreplacetto*=Py*honProgramPythonProgramstrip=PythonProgramPythonProgramstrip=ython
Progra(4)字符串的拆分与组合
s.split([sep,[maxsplit]]):以sep为分隔符,把字符串s拆分成一个列表。默认的分隔符为空格。maxsplit表示拆分的次数,默认取-1,表示无限制拆分。
s.rsplit([sep,[maxsplit]]):从右侧把字符串s拆分成一个列表。
s.splitlines([keepends]):把s按行拆分为一个列表。keepends是一个逻辑值,如果为True,则每行拆分后会保留行分隔符。s.partition(sub):从sub出现的第1个位置起,把字符串s拆分成一个3元素的元组(sub左边字符,sub,sub右边字符)。如果s中不包含sub,则返回(s,",")。
s.rpartition(sub):从右侧开始,把字符串s拆分成一个3元素的元组(sub左边字符,sub,sub右边字符)。如果s中不包含sub,则返回(",",s)。
s.join(seq):把seq代表的序列组合成字符串,用s将序列各元素连接起来。字符串中的字符是不能修改的,如果要修改,通常的方法是,用list()函数把字符串s变为以单个字符为成员的列表(使用语句s=list(s)),再使用给列表成员赋值的方式改变值(如s[3]='a'),最后再使用语句“s="".join(s)”还原成字符串。例
字符串拆分与组合函数使用示例。程序如下:s='abcde'print('{:s}split={}'.format(s,s.split()))s='a-b-c-de'print('{:s}split={}'.format(s,s.split('-')))print('{:s}partition={}'.format(s,s.partition('-')))#分段拆分运行结果如下:abcdesplit=['a','b','c','de']a-b-c-desplit=['a','b','c','de']a-b-c-departition=('a','-','b-c-de')(5)字符串类型测试字符串类型测试函数返回的都是逻辑值。
s.isalnum():是否全是字母和数字,并至少有一个字符。
s.isalpha():是否全是字母,并至少有一个字符。
s.isdigit():是否全是数字,并至少有一个字符。
s.isspace():是否全是空格,并至少有一个字符。
s.islower():s中的字母是否全是小写。
s.isupper():s中的字母是否全是大写。
s.istitle():s是否为首字母大写。例
字符串测试函数使用示例。程序如下:s='PythonProgram'print('{:s}isalnum={}'.format(s,s.isalnum()))print('{:s}isalpha={}'.format(s,s.isalpha()))print('{:s}isupper={}'.format(s,s.isupper()))print('{:s}islower={}'.format(s,s.islower()))print('{:s}isdigit={}'.format(s,s.isdigit()))s='3423'print('{:s}isdigit={}'.format(s,s.isdigit()))Python程序设计结构什么是程序设计?一个解决问题的程序主要描述两部分内容:描述问题中每个数据对象和数据对象之间的关系(数据结构)描述对这些数据对象进行操作的规则(算法)程序设计的任务:选择描述问题的数据结构,设计解决问题的算法(方法和步骤),再将算法用程序设计语言来描述。本课件是可编辑的正常PPT课件算法计算机解决问题的方法和步骤,就是计算机解题的算法。算法具有如下基本特征:①有穷性(Finiteness)。②确定性(Definiteness)。③输入项(Input)。一个算法有0个或多个输入。④输出项(Output)。一个算法有一个或多个输出。⑤可行性(Effectiveness),也称有效性。本课件是可编辑的正常PPT课件算法描述方法自然语言表示方法流程图表示方法(常用)伪代码N-S流程图UML(统一建模语言)本课件是可编辑的正常PPT课件程序设计步骤一个程序包括数据输入、数据处理和数据输出三个步骤,其中输入、输出反映了程序的交互性,一般是一个程序必需的步骤,数据处理是指对数据要进行的操作与运算,根据解决的问题不同而需要使用不同的结构来实现。分析问题,确定数学模型或方法。设计算法,画出流程图。选择编程工具,按算法编写程序。调试程序,分析输出结果。本课件是可编辑的正常PPT课件程序基本结构
——顺序、选择(或分支)、循环
ABA顺序结构条件BA选择结构TrueFalse条件FalseTrue循环结构本课件是可编辑的正常PPT课件本课件是可编辑的正常PPT课件算法示例例1利用公式实现华氏温度到摄氏温度转换算法设计如下:
1)输入华氏温度。用f表示华氏温度。2)代入公式,计算出对应的摄氏温度。用c表示摄氏温度。3)输出摄氏温度。思考:已经摄氏温度求华氏温度?如何实现不同温度互转?本课件是可编辑的正常PPT课件算法示例例2求解两个正整数的最大公约数(欧几里得算法)的算法设计如下:①对于已知两个正整数a,b,使得a>b;②以大数a作被除数,小数b作除数,a除以b得余数r;③若r≠0,a←b,b←r,继续执行步骤(2);④若r=0,则b即为所求的a与b的最大公约数,算法结束。本课件是可编辑的正常PPT课件欧几里得算法流程图表示本课件是可编辑的正常PPT课件顺序结构——代码按顺序依次执行例
从键盘上输入一个3位正整数n,输出其逆序数m。例如输入n=123,则m=321。分析:程序分为以下三步。①输入一个三位数n②求其逆序数m③输出m思考:如何判断3位数?本课件是可编辑的正常PPT课件顺序结构关键在第二步。分离各位、十位、百位数:设个位数存入a,十位数存入b,百位数存入c,则按m=100a+10b+c重新组合即可分离方法很多,其中之一可用取余数运算符“%”和整除运算符“//”实现,即: n%10可取出n的个位数; n=n//10去掉n的个位数,再用n%10取出原来n的十位数; n//100可以取出百位。本课件是可编辑的正常PPT课件顺序结构程序如下:n=int(input("n="))a=n%10#分离个位b=n//10%10#分离十位c=n//100#分离百位m=100*a+10*b+cprint(n,"的逆序数是",m)本课件是可编辑的正常PPT课件顺序结构例求一元二次方程ax2+bx+c=0的实数根。(假设判别式>=0)分析:1)输入系数a、b、c2)计算判别式值,按求根公式求实数根3)输出思考:如何把判别式判断也考虑进来?——程序完整性本课件是可编辑的正常PPT课件顺序结构例求解“鸡兔同笼”问题。(我国古代数学问题)鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有几只鸡和兔?分析:1)输入脚数f,头数h2)求解鸡和兔的只数(方法多样)3)输出鸡和兔的只数注意:变量的使用,以不变应万变本课件是可编辑的正常PPT课件顺序结构程序如下:h=35f=94x=(4*h-f)/2y=h-xprint("鸡的个数位:",x,"兔子的个数位:",y)本课件是可编辑的正常PPT课件Python程序设计结构——选择结构选择结构——选择一条执行又称为分支结构,它根据给定的条件是否满足,决定程序的执行路线,在不同的条件下执行不同的操作。选择结构分单分支,双分支和多分支三种类型。If表达式:语句块If表达式:语句块1else:
语句块2If表达式1:语句块1Elif表达式2:
语句块2Elif表达式3:
语句块3…else:
语句n本课件是可编辑的正常PPT课件单分支选择结构格式为:if表达式:
语句块注意:(1)if语句的表达式后面必须加冒号。(2)因为Python把非0当成真,0当成假,所以表示条件的表达式不一定必须是结果为True或False的关系表达式或逻辑表达式,可以是任意表达式。
语句块条件FT图3-3单分支结构本课件是可编辑的正常PPT课件例3.8输入两个整数a和b,先输出较大数,再输出较小数。分析:输入a,b;如果a<b,则交换a和b,否则不交换;最后输出a,b.程序如下:a,b=eval(input("输入a,b:"))ifa<b:#若a<b,交换a和b,否则不交换
a,b=b,aprint(a,b)本课件是可编辑的正常PPT课件双分支选择结构其一般格式为:if表达式:
语句块1else:
语句块2
图3-4双分支结构语句块2语句块1条件否是本课件是可编辑的正常PPT课件双分支举例——分段函数例输入x,计算y的值。其中:程序清单如下:x=eval(input("x="))ifx<0:y=x+1else:y=2*x-1print(y)本课件是可编辑的正常PPT课件例3.9输入三角形的三个边长,求三角形的面积。分析:设a,b,c表示三角形的三个边长,则构成三角形的充分必要条件是任意两边之和大于第三边,即a+b>c,b+c>a,a+c>b。如果该条件满足,则可按海伦公式计算三角形的面积。程序如下:importmatha,b,c=eval(input("a,b,c="))ifa+b>canda+c>bandb+c>a: p=(a+b+c)/2 s=math.sqrt(p*(p-a)*(p-b)*(p-c)) print(“area=”,s)else: print("inputdataerror")本课件是可编辑的正常PPT课件多分支选择结构if表达式1: 语句块1elif表达式2: 语句块2elif表达式3: 语句块3……elif表达式n:
语句块n[else:
语句块n+1]本课件是可编辑的正常PPT课件例3.11超市打折某购物超市节日期间举办购物打折扣的促销活动,优惠办法是每位顾客当天一次性购物:在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。则可以根据顾客购物款数计算出优惠价。x=float(input("输入消费款数:"))ifx<100: y=xelifx<200: y=0.95*xelifx<300: y=0.9*xelifx<500: y=0.85*xelse: y=0.8*xprint("实际付款为:",y)本课件是可编辑的正常PPT课件例
已知某课程的百分制分数mark,将其转换为等级制(优、良、中、及格和不及格)的评定等级grade。评定条件为:成绩在90以上为优秀,80以上且小于90的为良好,70以上且小于80的为中等,60以上且小于70的为及格,60以下为不及格。根据评定条件,给出以下三种不同的实现方法(主要代码片段),供读者分析对错。成绩等级转换本课件是可编辑的正常PPT课件方法一:ifmark>=90: grade="优"elifmark>=80: grade="良"elifmark>=70: grade="中"elifmark>=60: grade="及格"else: grade="不及格"方法二:ifmark>=90: grade="优"elifmark>=80Andmark<90: grade="良"elifmark>=70Andmark<80: grade="中"elifmark>=60Andmark<70: grade="及格"else: grade="不及格"方法三:ifmark>=60: grade="及格"elifmark>=70: grade="中"elifmark>=80: grade="良"elifmark>=90: grade="优"else: grade="不及格"本课件是可编辑的正常PPT课件选择结构的嵌套例如:if表达式1:if表达式2: 语句块1else:
语句块2例如:if表达式1:if表达式2: 语句块1else:
语句块2本课件是可编辑的正常PPT课件例
输入学生的成绩,根据成绩进行分类。85分以上优秀,70-84良好,60-69及格,60以下不及格。g=float(input("输入学生成绩:"))ifg>=60: ifg>=70: ifg>=85: print("优秀") else: print("良好") else: print("及格")else: print("不及格")本课件是可编辑的正常PPT课件条件运算<=>双分支表达式1if表达式else表达式2条件运算的运算规则是:先求if后面表达式的值,如果其值为True,则求表达式1,并以表达式1的值为条件运算的结果。如果if后面表达式的值为False,则求表达式2,并以表达式2的值为条件运算的结果。例如:>>>x,y=40,30>>>z=xifx>yelsey>>>z40
if表达式:
表达式1else:
表达式2<=>本课件是可编辑的正常PPT课件例
生成3个2位随机整数,输出其中最大的数。importrandom#导入随机模块x=random.randint(10,99)#用随机模块的随机函数产生[10,99]范围的整数y=random.randint(10,99)z=random.randint(10,99)max=xifx>yelseymax=maxifmax>zelsezprint("x={0},y={1},z={2}".format(x,y,z))print("max=",max)不太推荐本课件是可编辑的正常PPT课件选择结构程序举例书读百遍其义自见练习代码五百行,学会编程也不难实践出真知熟能生巧本课件是可编辑的正常PPT课件水仙花数例输入一个整数,判断它是否为水仙花数。所谓水仙花数,是指这样的一些3位正整数:各位数字的立方和等于该数本身,例如153=13+53+33,则153是水仙花数。分析:关键的一步是先分别求3位整数的个位、十位、百位数字,再根据条件判断该数是否为水仙花数。程序如下:x=eval(input("输入测试的数字:"))a=x%10#分离个位b=(x//10)%10#分离十位c=x//100#分离百位ifx==a*a*a+b*b*b+c*c*c: print("{0}是水仙花数".format(x))else: print("{0}不是水仙花数".format(x))本课件是可编辑的正常PPT课件例
输入一个时间(分别输入时分秒),输出该时间经过5分30秒后的时间。hour=int(input("请输入小时:"))minute=int(input("请输入分钟:"))second=int(input("请输入秒:"))second+=30ifsecond>=60: second=second-60 minute+=1 minute+=5ifminute>=60: minute=minute-60 hour+=1ifhour==24: hour=0print(('{0:d}:{1:d}:{2:d}'.format(hour,minute,second)))思考:如果输入格式为如下,怎么处理?
小时:分钟:秒x.split(“sep”):将字符串x按sep指定的符号分隔成一个字符列表本课件是可编辑的正常PPT课件例某公司员工的工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15%(2)工作时数低于60小时者,扣发700元(3)其余按84元每小时计发输入员工的工号和该员工的工作时数,计算应发工资。可以用多分支if结构实现,也可以用if的嵌套实现gh,gs=eval(input("ghandgs:"))ifgs>120:gz=gs*84+(gs-120)*84*0.15elif60<gs<=120:gz=gs*84else:gz=gs*84-700print(gh,"号的工资为",gz)本课件是可编辑的正常PPT课件if嵌套的程序如下:gh,gs=eval(input("输入职工号和工时数:"))ifgs>120: gz=gs*84+(gs-120)*84*0.15else: ifgs>60: gz=gs*84 else: gz=gs*84-700print("{0}号职工应发工资{1}".format(gh,gz))本课件是可编辑的正常PPT课件例
输入年月,求该月的天数。例如,输入2012,3,则显示31天。分析:用year、month分别表示年和月,day表示每月的天数。考虑到以下两点:(1)每年的1、3、5、7、8、10、12月,每月有31天:4、6、9、11月,每月有30天,闰年2月有29天,平年2月有28天。(2)年份能被4整除,但不能被100整除,或者能被400整除的年均是闰年。程序如下:year=int(input("year="))month=int(input("month="))ifmonthin(1,3,5,7,8,10,12):day=31elifmonthin(4,6,9,11):day=30else:
#logi=(year%4==0andyear%100!=0)oryear%400==0day=28iflogielse29if(year%4==0andyear%100!=0)oryear%400==0:day=28else:
day=29print(year,month,day)思考:如果一行输入呢?本课件是可编辑的正常PPT课件更多的例子1、选择结构题(作业)2、Python3实例|菜鸟教程()3、Python100例|菜鸟教程()本课件是可编辑的正常PPT课件Python程序设计结构while循环、For循环简单的猜数游戏——While循环结构本课件是可编辑的正常PPT课件目录Contents任务导入问题分析、算法设计用While循环解决问题123方案改进总结与延伸45本课件是可编辑的正常PPT课件关于游戏谁还不是个爱玩的宝宝能不能想个办法玩出个名堂?宫本茂合金装备—小岛秀夫马库斯·阿列克谢·泊松Cytus—游名扬《崩坏》创始团队Tips:可以弹幕互动哟本课件是可编辑的正常PPT课件任务:请编制一款简单的人机交互猜数游戏
计算机随机产生一个数,游戏玩家输入猜测的数字:如果猜小了,提示“很遗憾,猜小了!”;如果猜大了,提示“很遗憾,猜大了!”;直到猜对则提示“恭喜你,猜对了!”,并且游戏结束。问题描述1本课件是可编辑的正常PPT课件任务:请编制一款简单的人机交互猜数游戏问题分析步骤1:让电脑随机产生一个10以内的数;步骤2:玩家开始猜数,电脑提示玩家输入要猜测的数字,判断是否猜中;步骤3:如果没有猜中,电脑给出相应提示并重复执行第2步,进行下一次猜数;步骤4:如果猜中则游戏结束。2算法设计(流程图)电脑随机产生一个数x玩家猜数为yx=y?给出提示信息并结束是否给出提示信息本课件是可编辑的正常PPT课件使用While循环求解问题用Python求解问题使随机模块Random的randint函数产生一个10以内的随机数使用循环结构实现重复的猜数操作,配合选择结构if语句判断是否猜中教学内容:While循环结构和break语句语法结构语法解释While表达式:循环体[else:
语句块]
首先计算表达式的值,如果值为True,则执行循环体;else可以缺省,当循环没有被break终止则会执行语句块。break跳出循环结构3?算法设计(流程图)电脑随机产生一个数x给出提示信息并结束x=y?玩家猜数为y是否给出提示信息本课件是可编辑的正常PPT课件编程实现简单猜数字游戏实现代码(先找同学说)importrandom#导入随机模块x=random.randint(1,10)
#电脑随机出数whileTrue:#无条件循环y=int(input(“请输入你猜的数字:”))#提示玩家猜数
break#猜中游戏结束有学生弹幕提问:如果计算机给出的是100,玩家可能需要猜100次,不累吗?放过宝宝吧!算法设计需要考虑最坏情况,注重效率问题思考3Tips:可以弹幕互动哟运行结果演示#判断是否猜中ify>x:
print(“很遗憾,猜大了!”)elify<x:
print(“很遗憾,猜小了!”)else:
print(“恭喜你,猜中了!”)本课件是可编辑的正常PPT课件简单猜数字游戏的改进改进:增加计数器,限制玩家参与次数。importrandom#导入随机模块x=random.randint(1,20)#电脑随机出数count=1#定义计数器记录玩家参与次数whilecount<=3:#玩家参与次数不够3次可以继续y=int(input(“请输入你猜的数字(20以内):”))
#提示玩家猜数
ify>x:#判断是否猜中
print(“很遗憾,猜大了!”)elify<x:
print(“很遗憾,猜小了!”)else:
print(“恭喜你,猜中了!”)break#猜中游戏结束
count=count+1
#猜数一次计数器加1else:
#增加else子句
print("抱歉,3次都没有猜中哦!“)#3次机会用完,游戏结束其他改进:设计界面、菜单等精益求精的工匠精神追求严谨的科学精神4Tips:随机点名听听同学的方案运行结果演示关于改进的思考本课件是可编辑的正常PPT课件本次游戏开发任务的收获是?学会了While看到了工匠精神看到了科学精神爱上了编程,好想试试。ABCD提交Tips:弹幕说说你的体会哦投票最多可选4项本课件是可编辑的正常PPT课件总结与延伸教学内容:While循环结构教学目标:知识目标:编制简单猜数游戏,学会用While循环解决问题能力目标:了解计算机解决问题的思路,能解决简单问题,能反思存在问题并给出应对策略素质目标:会学善思的学习能力,精益求精的工匠精神,追求严谨的科学精神,设计游戏体验快乐、勇于创新课后任务:游戏开发初体验教学延伸:
提升复习5北京理工大学嵩天国家精选在线课程北京理工大学嵩天本课件是可编辑的正常PPT课件尝试想法,也许就从游戏玩家变成游戏设计者;给创新土壤,一切皆有可能,加油!本课件是可编辑的正常PPT课件While循环格式如下: while表达式:
循环体
while语句流程图否是循环体条件表达式执行方式:先对“表达式”进行测试,在“表达式”为True时执行循环体;执行完一次循环体后,再测试表达式,如为真,则继续执行……直到表达式不为真为止;循环体的执行应当能使表达式的值改变。循环次数:提前未知本课件是可编辑的正常PPT课件例
计算1+2+3+……+100分析:观察这个算式会发现,每个数据项的差值为1,即xi+1=xi+1,由当前项的值可以推出下一项的值。求和的步骤是不变的,只是参与计算的数据项值在改变。程序如下:n=1s=0whilen<=100:s=s+nn=n+1print("s=",s)循环变量n条件表达式n<=100是否执行循环体循环体语句1s=s+n循环体语句2n=n+11True是s=122True是s=1+2n=33True是s=1+2+3n=4...............99True是s=1+2+...+99n=100100True是s=1+2+...+100n=101101False否s=5050n=101本课件是可编辑的正常PPT课件(1)如果“表达式”从开始就为假,则一次循环体也不执行。例如:
while1!=1
循环体条件“1!=1”永为False,因此不执行循环体。这样的语句没有什么实用价值。(2)如果表达式总是真,则不停地重复执行循环体。例如:
flag=1whileflag
循环体这种称为“死循环”。在此情况下,程序运行后,只能通过人工干预的方法或由操作系统强迫其停止执行。死循环是程序设计中容易出现的严重错误,应当尽力避免。注意本课件是可编辑的正常PPT课件例
使用while语句判断一个自然数是否是素数。算法思想:“素数”是指除了1和该数本身,不能被任何整数整除的正整数。判断一个整数n(n>1)是否是素数,只要依次用2~sqrt(n)作除数去除n,若n不能被其中任何一个数整除,则n即为素数;否则,n不是一个素数。程序如下:importmathn=int(input("请输入一个要测试的大于1的正整数:"))flag=0#假定标志0为素数,编程改变i=2while(i<=int(math.sqrt(n)))and(flag==0):r=n%iifr==0:flag=1breakelse:i=i+1ifflag==0:print("是素数")else:print("不是素数")本课件是可编辑的正常PPT课件for循环语句(遍历循环)格式为:
for目标变量in序列对象:语句块序列可以使如下内容:列表、元组字符串范围本课件是可编辑的正常PPT课件for语句的执行过程是:将序列对象中的元素逐个赋值给目标变量,对每一次赋值都执行一遍循环体语句块。当序列被遍历,即每一个元素都用过了,则结束循环,执行for语句的下一语句。for循环的循环次数是序列中元素的个数,即序列的长度,提前可知。可以利用序列长度来控制循环次数。for循环执行过程和次数本课件是可编辑的正常PPT课件例
从键盘输入10个数,然后求它们的和。程序如下:s=0forkin[1,2,3,4,5,6,7,8,9,10]:#列表x=int(input("输入第"+str(k)+"个数:"))s+=xprint("输入的十个数字的和=",s)目标变量的作用是存储每次循环所引用的序列元素的值,在循环体中也可以引用目标变量的值。在这种情况下,目标变量不仅能控制循环次数,而且直接影响循环体中的运算量,例如:s=0forkin[1,2,3,4,5,6,7,8,9,10]:s+=kprint("s=",s)本课件是可编辑的正常PPT课件while循环
和for循环比较s=0forninrange(1,101):s=s+nprint("s=",s)例
计算1+2+3+……+100n=1s=0whilen<=100:s=s+n
n=n+1print("s=",s)什么时候用while?For?整数范围Range(初值,终值+1,步长)初值可省,从0开始步长可省,表示1本课件是可编辑的正常PPT课件例求两个数的最大公约数和最小公倍数辗转相除法求最大公约数:1、输入a,b保证a>b2、r=a%b3、r!=0,a=b,b=r,重复执行2;r==0,当前的小数就是最大公约数最小公倍数=最初的a*b/最大公约数本课件是可编辑的正常PPT课件例输入20个数,求出其中的最大数与最小数。分析:先假设第一个数就是最大数或最小数,再将剩下的19个数与到目前为止的最大数、最小数进行比较,比完19次后即可找出20个数中的最大数与最小数。程序如下:max=int(input("输入第一个数:"))min=maxforiinrange(2,21,1):x=int(input("输入下一个数:"))ifmax<x:max=xifmin>x:min=xprint("max={0},min={1}".format(max,min))本课件是可编辑的正常PPT课件例将一个字符串中的字符按逆序打印出来。分析:先输出字符串的最后一个字符,且不换行,然后输出倒数第2个字符,同样不换行,一直到第1个字符。利用for循环控制字符索引编号,循环赋值目标变量从0变化到字符串的长度。程序如下:s1=input("pleaseenterastring:")foriinrange(0,len(s1)):print(s1[len(s1)-1-i],end='')本课件是可编辑的正常PPT课件例
从键盘输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大型设备安装工程合同范本
- 《探索创新思维》课件
- 《安全服务业的未来》课件
- 《争做守法好少年:3 防范和抵御邪教》教学设计-2023-2024学年六年级下册综合实践活动沪科黔科版
- 2025年信阳b2货运资格证全题
- 2025年福州货运资格证题库在线练习
- 兰州工商学院《统计学与软件应用》2023-2024学年第一学期期末试卷
- 山西省太原市上期期末复习重点名校2025年初三中考模拟训练评估卷(1)语文试题含解析
- 新疆大学《音乐学科课程与教学论》2023-2024学年第二学期期末试卷
- 上海市静安区重点名校2024-2025学年初三第二学期学分认定考试英语试题含答案
- 零基础开口说日语知到章节答案智慧树2023年嘉兴学院
- 新型农民培训服务投标方案
- 安徽省根银科技有限公司电子级玻璃纤维布织造项目环境影响报告表
- 工艺联锁图识读
- 2023年中南大学湘雅二医院康复医学与技术岗位招聘考试历年高频考点试题含答案解析
- GB/T 21567-2008危险品爆炸品撞击感度试验方法
- 卫生人才培养方案计划
- DB64-T 1684-2020 智慧工地建设技术标准-(高清可复制)
- 婚丧嫁娶事宜备案表
- “三级”安全安全教育记录卡
- 赛艇赛事活动推广方案
评论
0/150
提交评论