中国电子科技网络信息安全有限公司云计算与大数据事业部Python基础分享测试部–邓杰Contents目录1Python语言简介2Python开发环境搭建3Python语法基础4Python学习心得分享单击此处编辑母版标题样式1PartOnePython语言简介P4一、Python语言简介Python起源1989年由GuidovanRossum(吉多·范罗苏姆)创立。1991年Python发布了第一个公开发行版。Python2.x成熟稳定,目前已不更新。Python3.x新版本,但是有些库不兼容。P5一、Python语言简介Python是一门什么样的语言?Python是一门高级的、面向对象的、动态的解释型语言1.高级;距离机器越远的语言2.面向对象;拥有类等机制,能够进行对象编程。3.动态;能在运行中添加或者删除类或者实例的属性、方法。4.解释型;执行代码不是直接翻译成机器语言,而是翻译成中间码,再由解释器对中间代码进行解释执行。P6一、Python语言简介可扩展,这主要体现在python可以调用其它语言写的代码模块,如C、C++、JAVA等。因而,Python也被称为一种粘合语言。可移植性,能运行在各种不同的平台上。丰富的库。语法简单、易学。代码量少,优雅。Python优点Python缺点运行速度慢、代码不能加密等。P7一、Python语言简介Python运行原理找到主模块将入口python文件编译成一个字节码对象PyCodeObject保存在内存中代码执行完毕输出结果并将编译的字节码保存到pyc文件中Python解析器完成该工作参考链接一、Python语言简介Python应用Python标准库及其主要功能测试脚本、系统编程、图形处理、web编程、数据库编程、科学计算等等。文本处理文件处理操作系统功能网络通信及网络协议其它,如数学计算等。单击此处编辑母版标题样式2ParttwoPython开发环境搭建P10二、Python开发环境搭建Python的安装安装版本python2.7Windows下安装方法linux下安装方法参考链接:参考链接:很多linux系统自带了python!P11二、Python开发环境搭建Python包管理工具——setuptoolspip1、下载地址:、已经安装pip,进入命令行窗口,执行pipinstallxxx,就可以安装xxx包。3、升级已经安装的python包,执行pipinstall–upgradexxx。Python常用开发工具Sublime、Pycharm、eclipse+Pydev、vim自动下载、构建、安装和管理Python模块Pip和easy_install单击此处编辑母版标题样式3PartthreePython基本语法P13语句或者代码块用缩进的方式体现(推荐4个空格);不通的缩进深度分隔不同的代码块;Python文件以模块的形式组织;三、Python基本语法Python代码书写基本规则Python语句中的特殊字符#(井号)表示之后的字符为注释;\(反斜杠)继续上一行;:(冒号)将代码的头和体分开;;(分号)将2个语句连接在一行中P14必须以字母或者下划线开头,后面可接任意数目的下划线、字母及数字。区分大小写禁止使用保留字三、Python基本语法Python命名规范模块名;小写字母,单词之间用_分割。包名;小写字母,单词之间用_分割,一般跟模块同名。类名;单词首字母大写函数名;普通函数遵守命名规则即可,私有函数以双下划线开头。变量名称;全局变量大写,普通变量遵守命名规则即可,私有变量以双下划线开头。Python命名惯例良好的命名能提高代码的可读性!P15使用前不需要声明使用前不需要指定类型没有被赋值的变量不能存在于代码中三、Python基本语法(变量)Python变量特点Python变量赋值原理变量里存储的不是对象的值,而是对象的引用P16三、Python基本语法Python变量作用域变量的作用域由代码中被赋值的位置所决定变量搜索遵循LEGB(Local、Enclosing、Global、Built-in)原则?作用域如何引入在Python中,只有模块、类以及函数才会引入新的作用域,if、for、while等的子句不会引入新的作用域?变量搜索原则P17三、Python基本语法(数据类型)整型、双精度浮点型、复数、字符串、列表、元组、字典等。常用的数据类型列表(List)列表是Python内置的一种数据类型,是一种有序的集合,可以随时添加和删除其中的元素,列表中的元素可以为任意的Python对象(个人理解:可编辑的、能装任意python对象的一种容器)。P18三、Python基本语法(数据类型)列表常用操作1.L.append(obj)增加一个元素2.L.count(obj)统计某个元素在列表中出现的次数3.L.extend(seq)扩展列表4.L.index(obj)从列表中找出某一个值第一次出现的索引位置5.L.insert(index,obj)将对象插入列表6.L.remove(obj)移除列表中某个值的第一个匹配项7.L.reverse()反向列表中元素8.L.pop(obj=L[-1])移除列表中的一个元素,默认最后一个,并返回该值9.L.sort([func])对原列表进行排序P19三、Python基本语法(数据类型)元组(tuple)元组是Python的内置数据类型,与列表相似,但元组是不可变的(个人理解:不可变的、能装任意python对象的一种容器)。不可变的理解:不可变是指其指向不可变,换句话说,如果元组中的元素包含可变元素,那么该元素指向的值是可以改变,但其指向不会改变如右图演示代码,元组s中的列表的值发生改变,但是其所有元素的地址没有发生变化。P20三、Python基本语法(数据类型)元组的操作1.t.count(vlaue)返回元组某个元素出现的次数2.t.index(value,[start,[stop]])返回指定值的索引注意!定义单个元素的元组且类型为整型,需要逗号区分(元组的定义符号与小括号一样)。P21三、Python基本语法(数据类型)字符串字符串的创建:通过引号((单引号、双引号、三引号(单和双))括起来的对象。为什么要有单引号、双引号、三引号1、三种引号的作用是一样的2、减少转义字符的数量,提高可读性字符串的特性:不可变小技巧:三引号可以用来做多行注释!P22三、Python基本语法(数据类型)字符串的编码和解码(针对中文)str和unicodeunicode、utf-8、gbk之间的关系decode和encodePython中表示字符串有2种方式;一种是普通的str对象,一种是unicode字符串,它们之间可以相互转换,unicode的优势是可以实现跨平台。unicode又称万国码,将世界上所有的字符进行编码,都以2个字节进行表示。utf-8对不同范围的字符使用不同长度的编码,1-4个字节unicode是一种编码标准,具体实现标准可能是utf-8、gbk等decode将utf-8等编码的字符串转为unicodeencode是将unicode编码为utf-8、gbk等P23三、Python基本语法(数据类型)切片操作操作对象python序列(字符串、列表、元组)切片定义通过制定下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素,这种访问序列的方式叫做切片。原型[start:stop:step]即[开始索引:结束索引:步长值],其中start默认值为0、stop默认取到该索引对应的值为止,但不包含该索引对应的值、step的默认值为1切片操作技巧总结(1)start、stop的值可以为正数也可以为负数,其中正数表示从序列的左边往右(起始值为0),负数表示从序列的右边往左(起始值为-1),比如,start=-1,stop=-2分别表示起点为序列的最后一个元素和序列的到时第二个元素。(2)step的值也可以为正数同时也可以为负数,但不能为0,其中正数表示从start开始往右,负数表示从start开始往左,也就是可将序列进行翻转,比如,step=-2表示从start开始往左以步值为2取值。另外,当step取默认值时,[start:stop:step]中的第二个:符号可以省略不写,即为[start:stop]。P24三、Python基本语法(数据类型)字典(dict)1、简单的说,字典是用大括号包裹的键值对的集合,字典是python中唯一的映射类型。2、字典对象是可变的,它是一个容器类型,能存储任意个数的python对象,其中也可包括其他的容器类型。字典的一般形式adict={}adict={key1:value1,key2:value2,…,keyn:valuen}1、键值对称为项,2、键与值用冒号(:)分开,2、项与项用逗号(,)分开,4、字典中的键值必需唯一,而值可以不唯一5、一个键只能对应一个值,而不能对应多个值P25三、Python基本语法(数据类型)字典的基本操作1、字典的访问2、检查key是否在字典中adict.has_key(‘name’)或者‘name’inadict来判断key是否存在3、更新字典4、字典的迭代adict[key]形式返回键key对应的值value①添加数据项adict[new_key]=value②更新数据项adict[old_key]=new_value③删除数据项deladict[key]或者adict.pop(key)会返回value的值①adict.iteritems()可逐个返回元组形式的键值对②adict.iterkeys()可逐个返回字典的key③adict.itervalues()可逐个返回字典的valueP26三、Python基本语法(函数)函数如何定义函数的参数python中函数由保留字def来定义,不需要定义类型,如有参数也不需要定义参数类型:一般情况下,函数需要包括函数名、参数、函数体三部分。在Python中函数名存储该函数入口的地址,()表示调用函数,换句话说,函数名是可以作为参数传递的。默认参数是指函数的参数已经指定了一个值,如果调用时不指定新的值,就传递该默认值。当有多个连续的默认值时,如果要给非第一个默认参数指定一个新的值,需要带上参数的名称,如test1()可变参数是指函数的参数个数不定(可以为0个),由带*和**表示,该参数只能放在函数参数列表的最后一个。P27三、Python基本语法if、if-else、while语句not、notin、is、isnot、and、or具有python特色的判断语句is和==的区别is检查2个对象是否是同一个对象,==检查他们是否相等语法ifexpression:bodyelse:bodywhileexpression:bodybreak跳出循坏continue跳出当前循环,不再执行后面的语句pass不做任何处理P28三、Python基本语法for语句语法foriter_variniterable:body1、iterable必需具有迭代功能,通过迭代对象的next函数逐个将iterable中所有的值传递给iter。2、iter每取一个值就执行一次循环体。列表推导式1、列表推导式是利用其它列表创建新的列表的一种方式