(完整版)python学习课件课件.ppt
python语言介绍,目 录/CONCENTS,Python概述,Python基本语法,01,02,Python数据结构,03,Python字符串,04,Python简单程序编写,05,1.Python 概述,计算机语言发展过程,Python语言由来,Python的创始人为荷兰人Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C+和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。,Python语言由来,可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。实际上,Python的第一个版本实现是在Mac机上。(转自互联网)Python语言已诞生20多年了,正逐渐发展为主流程序设计语言之一,目前在TIOBE编程语言排行榜中长期占据第七、八的位次,近期又有上升。目前,Python由世界各地的数十位程序员(包括van Rossum)负责维护。Python的官方定义为:Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。,TIOBE 2015年8月编程语言排行榜 TOP 20 榜单,Top 10语言的30十年变化,有人说:,编写C程序就像一群人拿着剃刀在刚打过蜡的 舞场内跳快舞。Waldi RavensC+:难学更难用,设计如此。匿名在很多方面,Java就是C+。Michael Feldman,python语言特点,程序设计语言在不断发展,从最初的机器语言、汇编语言到后来的C、Pascal语言,发展到现在的C+、Java等高级编程语言。程序设计的难度在不断减小,软件的开发和设计已经形成了一套标准,开发工作已经不再是复杂的任务。最初只能使用机器代码编写程序,而现在可以使用具有良好调试功能的IDE环境编程。Python使用C语言开发,但Python不再有C语言中的指针等复杂数据类型。Python的简洁性使得软件的代码大幅度减少,开发任务进一步简化。程序员关注的重点不再是语法特性,而是程序所要实现的任务。Python语言有许多重要的特性,而且有些特性是富有创造性的。,Python语言特点-面向对象,面向对象的程序设计解决了结构化程序设计的复杂性,使得程序设计更贴近现实生活。结构化程序设计把数据和逻辑混在一起,不便于程序的维护。面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但又合理地组织在一起。Python语言具有很强的面向对象特性,而且简化了面向对象的实现,它消除了保护类型、抽象类、接口等面向对象的元素,使得面向对象的概念更容易理解。,Python语言特点-内置数据结构,Python提供了一些内置的数据结构,这些数据结构实现了类似Java中集合类的功能。内置数据结构的出现简化了程序设计。Python的数据结构包括元组、列表、字典、集合等。元组相当于“只读”的数组,列表可以作为可变长度的数组使用,字典相当于Java中的HashTable类型。,Python语言特点-简单性,Python语言的关键字比较少,它没有分号、begin、end等标记,代码块使用空格或制表键缩进的方式来分隔。Python的代码简洁、短小、易于阅读。Python简化了循环语句,即使程序结构很复杂也能快速读懂。,Python语言特点-健壮性,Python提供了异常处理机制,能捕获程序的异常情况。此外Python的堆栈跟踪对象能够指出程序出错的位置和出错的原因。异常机制能够避免不安全退出的情况,同时能够帮助程序员调试程序。,Python语言特点-跨平台,Python会先被编译为与平台相关的二进制代码,然后再解释执行。这种方式类似于Java,但Python的执行速度提高了。Python编写的应用程序可以运行在Windows、Unix、Linux等不同的操作系统上。在一种操作系统上编写的Python代码只需做少量修改,就可移植到其他的操作系统上。,Python语言特点-可扩展、动态性,可扩展性Python是采用C开发的语言,因此可以使用C扩展Python,可以给Python添加新的模块、新的类。同时Python可以嵌入C、C+语言开发项目中,使程序具备脚本语言的特性。动态性Python与JavaScript、PHP、Perl等语言类似,它不需要另外声明变量、直接赋值即可创建一个新的变量。,Python语言特点-强类型、应用广泛,强类型语言Python的变量创建后会对应一种类型,它可根据赋值表达式的内容决定变量的类型。Python在内部建立了管理这些变量的机制,不同类型的变量需要类型转换。应用广泛Python语言应用于数据库、网络、图形图像、数学计算、Web开发、操作系统扩展等领域。有许多第三方库支持Python。,Python下载,1、访问Python下载页面https:/www.python.org/downloads/,比较Python 2和Python 3,Python 3发布于2008年底,是一次重大的升级。Python 3的有些改进不向后与Python 2兼容,因此Python 2始终与Python 3并行地向前发展。全面了解Python 3和Python 2之间的差异,可参阅Whats New in Python 3.0(http:/docs.python.org/3/whatsnew/3.0.html)。工具2to3(http:/docs.python.org/3/library/2to3.html)几乎能将任何Python 2程序自动转换为等价的Python 3程序。,2.Python 基本语法,Python的编码规范,1、命名规则Python语言有一套自己的命名规则。命名规则并不是语法规定,只是一种习惯用法。(1)变量名、模块名、包名通常采用小写,可使用下划线。例如:rulemodule.py#模块名,即文件名_rule=rule information#_rule变量名,通常前缀有一个下划线的变量名为全局变量,Python的编码规范,(2)类名、对象名类首字母采用大写;类中的方法名首字母小写,其后的每个单词的首字母大写;对象名(类的实例)采用小写;类外引用其属性和方法名时,以对象名作为前缀。类的私有变量、私有方法以两个下划线作为前缀。,Python的编码规范,(3)函数名函数名通常采用小写,并用下划线或单词首字母大写增加名称的可读性。导入的函数以模块名作前缀。下例中,为演示导入函数前缀写法,使用了生成随机数的模块random。该模块有一个函数randrange(),该函数可以根据给定的数字范围生成随机数。其声明为:randrange(start,stop,step)说明:参数start表示生成随机数所在范围的开始数字。参数stop表示生成随机数所在范围的结束数字,但不包括数字stop。参数step表示步长。生成的随机数在start,stop-1的范围内,取值等于start+step。,Python的编码规范,比较两个数的大小,数据由随机函数生成。随机数的范围在18之间选取。,Python的编码规范,2、代码缩进与冒号对于C、C+、Java等语言,代码缩进只是作为编程的一种良好习惯。对于Python而言,代码缩进是一种语法。Python语言中没有采用花括号或beginend分隔代码块,而是使用冒号和代码缩进区分代码之间的层次。,Python的编码规范,比较两个程序段并查看运行结果,执行结果:,执行结果:,Python的编码规范,3、模块导入的规范模块是类或函数的集合,用于处理一类问题,使用任何Python模块都必须先导入。模块的导入使用import语句或fromimport语句。(1)import语句例如:导入数学函数模块math,调用其中的函数。,Python的编码规范,(2)fromimport语句,使用第二种导入方式,在调用math模块中的任何函数时,都无需在前面加上“math.”。使用第二种导入方式时,如果程序中的函数与math模块中的某个函数同名,将被math模块中的同名函数覆盖。第一种导入方式不会覆盖任何既有函数,但使用起来不如第二种方式简洁。还可以导入模块math的特定函数。例如:from math import sqrt,tan 只导入函数sqrt和tan。,Python变量,变量是计算机内存中的一块区域,变量可以存储任何值(也称指向),而且值可以改变。例如:,Python变量,1、变量命名规则变量名的长度不受限制,其中的字符必须是字母、数字或下划线(_),不能使用空格、连字符、标点符号、引号或其他字符变量名的第一个字符不能是数字,必须是字母或下划线。Python区分大小写,因此TAX、Tax和tax是截然不同的变量名。不能将Python关键字(或称为保留词)用作变量名。例如:if、else、while、def、or、and、not、in和is都是Python关键字。,Python变量,2、赋值语句,格式:var=value 左值 右值 赋值运算符功能:定义新的变量;让已定义的 变量指向特定值。,Python变量,3、多重赋值Python中,有一种便利的方法,能够同时给多个变量赋值。,Python运算符与表达式,Python的运算符包括算术运算符、关系运算符和逻辑运算符。表达式是由数字或字符串和运算符组成的有意义的式子。1、算术运算符和算术表达式(1)整数运算,Python运算符与表达式,运算顺序Python算术运算的规则与常规算术的规则相同。长度不受限制与其他大多数编程语言不同,Python对整数的长度没有限制,可以执行数十位甚至数百数千位的整数运算。如:27*100,Python运算符与表达式,(2)浮点数运算在Python中,浮点数是带小数点的数字。例如:-3.1、2.999和-4.0都是浮点数。所有适合用于整数的算术运算符都可用于浮点数,包括%(求余)和/(整除),Python运算符与表达式,2、关系运算符和关系表达式,Python运算符与表达式,例如:,相当于:31,Python运算符与表达式,3、逻辑运算符和逻辑表达式,基本逻辑运算符的真值表,Python运算符与表达式,4、三类运算符的优先级算术运算符优先级最高关系运算符优先级次之逻辑运算符优先级最低,3.Python 数据结构,概述,Python秉承方便程序员的理念,提供了几个功能强大而高效的数据结构:元组、列表、字典和集合。程序员可以根据需要组合使用它们,以创建更复杂的数据结构。在Python中,两个主力数据结构是列表和字典。列表按顺序存储数据,而字典就像小型数据库,使用键高效地存储和检索数据。,元组,元组是一种不可变序列,即创建之后不能再做任何修改。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元组。元组通常代表一行数据,而元组中的元素代表不同的数据项。1、元组的创建格式:tuple=(元素1,元素2,元素n)#定义n个元素组成的元组 tuple=()#定义空元组 tuple=(元素1,)#定义单元素元组,元组,执行结果:,元组,2、元组的访问元组中元素的值通过索引访问,索引是一对方括号中的数字,索引也称为“下标”。格式:tuplen#访问第n个元素 tuplem:n#访问第1个索引到第2个索引之间的索引元素,但不包括第2个索引指向的元素其中,n、m可以为0、正、负整数。,网址:http:/,西普教育,元组,元组,操作元组,列表,列表是Python中非常重要的数据类型,通常作为函数的返回类型。列表和元组相似,也是由一组元素组成。列表可包含任何类型的值:数字、字符串甚至序列。列表与元组的重要差别是列表是可变的,即可以在不复制的情况下添加、删除或修改列表元素。1、列表的创建格式:list=元素1,元素2,元素n#定义n个元素组成的列表 list=#定义空列表 list=x#定义只包含一个元素的列表,与元组不同,最后的逗号不是必须的说明:列表用方括号括起,其中元素用逗号分隔,列表,创建列表,执行结果:,列表,2、列表的使用列表的使用与元组十分相似,同样支持负数索引、分片以及多元列表等特性,但列表的元素可修改。与字符串和元组一样,可使用len获取列表长度,还可使用+和*拼接列表。,列表,3、常用列表函数,列表,在列表末尾添加元素或列表,执行结果:,字典,字典是Python重要的数据类型,字典是由“键值”对组成的集合,字典中的“值”通过“键”来引用。字典也称为关联数组、映射或散列表。Python字典利用了“散列”方法,使用专门的散列函数完成,即字典中的每个键都被转换为一个数字散列值。字典中值存储在一个底层列表中,并用散列值作为索引。访问值时,将提供的键转为散列值,再跳到列表的相应位置。使用“键”来访问字典值效率极高。另外与列表一样,字典也是可以改变的:可以添加、删除或修改“键值”对。1、创建字典格式:dictionary=key1:value1,key2:value2,keyn:valuen)#创建n个“键值”对组成的字典 dictionar=#创建空字典注意,对于字典的键有两个限制:字典中的键必须独一无二,即在同一个字典中,任何两个键值对都不能相同;键必须是不可变的。因此,字典键不能是列表、字典对值没有这两个限制。,字典,2、字典的访问字典的访问与元组、列表有所不同,元组和列表是通过数字索引获取对应的值,而字典是通过key值获取相应的value值。格式:value=dictkey说明:字典的添加、删除和修改只需执行一条赋值语句即可,例如:dictx=value字典没有remove操作。删除字典元素可调用内置函数del()完成。,字典,字典的创建、添加、删除和修改,执行结果:,字典,3、字典函数,字典,集合,在Python中,集合是一系列不重复的元素。集合类似于字典,但只包含键,而没有相关联的值。在Python中,集合是相对较新的功能,在其还不支持集合时,一般使用字典模拟集合。集合分两类:可变集合(set)和不可变集合(frozenset)。对于可变集合,可添加和删除元素,而不可变集合一旦创建就不能更改。与字典一样,集合的元素排列顺序也是不确定的。集合没有列表和字典用得多,本章简要介绍,详细内容可参阅:https:/docs.python.org/3/library/stdtypes.html#set集合基本功能:包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集,即异或)等数学运算。大括号或 set()函数可以用来创建集合。注意:想要创建空集合,必须使用 set()而不是。,集合,创建集合,执行结果:,集合,集合操作,执行结果:,4.Python字符串,字符串,在Python中,字符串是除数字外最重要的数据类型。字符串无处不在:将字符串输出到屏幕上;从用户的键盘输入读取字符串;文件通常被视为大型字符串;网页大部分是由文本组成的。字符串是一种聚合数据结构,可充分利用索引和切片用于从字符串中提取子串。而Python正则表达式库,是一种用来处理字符串的微型语言,但功能强大。Python中,字符串、列表和元组都属于序列。序列有一些通用的操作。包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小元素等。,字符串,1、索引序列中的所有元素都是有编号的从0开始递增。这些元素可以通过编号分别访问。索引有正索引和负索引,可根据实际情况选用。字符串就是一个由字符组成的序列,处理字符串时,经常需要访问其中的各个字符。索引0指向第1个字符。字符串apple的正索引和负索引,字符串,字符串索引应用,执行结果:,字符串,2、分片与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”Python 3支持的分片格式为:Si:j:k表示:索引S对象中的元素,从索引为i直到索引为j-1,每隔k个元素索引一次,第三个限制k为步长,默认为1,也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。在Python中,还可以使用split()函数来截取字符串。,字符串,3、序列相加(字符串连接、合并)之前介绍过,使用“+”完成。除此之外,还可以使用join函数和reduce函数实现字符串的合并。注意:不同类型的数据不能相加。如:4、乘法用数字x乘以一个序列会生成新的序列,在新的序列中,原来的序列被重复x次。如:,字符串,5、成员资格为了检查一个值是否在序列中,可以使用in运算符。该运算符检查某个条件是否为真,若为真返回True,否则返回False。例如:6、长度、最小值和最大值len、min和max都是内置函数。len返回序列中包含的元素个数。min返回序列中的最小值。max返回序列中的最大值。例如:,字符串常用函数,字符串的替换函数Python字符串自带了两个替换函数,如下表所示,字符串,字符串的合并之前介绍过,Python可使用“+”连接不同的字符串。除此之外,还可以使用join函数(是split方法的逆方法)和reduce函数实现字符串的合并。使用join函数连接字符串,执行结果:,字符串,拆分函数拆分函数将字符串拆分成多个子串。如下表所示,字符串,执行结果:,字符串,改变大小写函数,说明:在以上函数中,Python都创建并返回一个新字符串,Python不会真正修改原字符串。,字符串,例子,5.Python 简单程序编写,