Python程序设计基础(第2版)_第1页
Python程序设计基础(第2版)_第2页
Python程序设计基础(第2版)_第3页
Python程序设计基础(第2版)_第4页
Python程序设计基础(第2版)_第5页
已阅读5页,还剩607页未读, 继续免费阅读

下载本文档

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

文档简介

Python简介Python概述什么是Python?面向对象解释型程序设计语言设计哲学优雅明确简单复杂的应用程序粘合在一起尤其是C/C++“胶水”语言2018年3月更新到Python2.7.14版本2008年发布Python3.0版本2000年发布Python2.0版本1994年发布Python1.01991年发布第一个正式版本1989年Python种子被播下1989年Python种子被播下1991年发布第一个正式版本1994年发布Python1.02000年发布Python2.0版本2008年发布Python3.0版本2018年3月更新到Python2.7.14版本2018年3月更新到Python3.6.4版本2023年10月更新到Python3.12版本2020年官方不再提供支持2020年官方不再提供支持已过时2024年10月更新到Python3.13版本应该选择哪个版本呢?Python都能应用在哪些领域?Web开发人工智能自动化运维开发大数据处理游戏开发云计算爬虫搭建Python开发环境需要什么开发环境?什么是解释器?[概念]解释器是用来一行一行直接转译运行的程序。安装Python下载Python的安装包1安装Python2/测试Python是否安装成功3第一个Python程序输出“人生苦短,我用Python”实例输出学生信息管理系统的功能主菜单实例Python代码编写规范注释1缩进2命名规范3[概念]注释是指在程序代码中添加的标注性的文字。单行注释1多行注释2中文编码声明注释3C语言、Java、PHP使用//进行单行注释#注释内容注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。height=flo#要求输入身高at(input("请输入您的身高:"))常见错误在IDLE开发环境中,可以使用快捷键Alt+3/Alt+4快速添加/取消注释。秘笈多行注释

在Python中将包含在一对三引号('''……''')或者("""……""")之间,并且不属于任何语句的内容认为是多注释。[概念]'''注释内容1注释内容2……'''

"""注释内容1注释内容2……"""总结:多行注释使用三引号作为定界符不属于任何语句缩进

代码缩进是指在每一行代码左端空出一定长度的空白,从而可以更加清晰地从外观上看出程序的逻辑结构。[概念]同一个级别的代码块的缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常。命名编码每个import语句只导入一个模块,尽量避免一次导入多个模块。建议每行不超过80个字符。使用必要的空行可以增加代码的可读性。不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。避免在循环中使用+和+=运算符累加字符串。适当使用异常处理结构提高程序容错性运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔。模块名尽量短小,并且使用全部小写字母,可以使用下划线分隔多个字母。类名采用单词首字母大写形式(即Pascal风格)。模块内部的类由“_”+Pascal风格的类名组成。包名尽量短小,并且使用全部小写字母。常量命名时采用全部大写字母,可以使用下划线。使用双下划线“__”开头的实例变量或方法是类私有的。函数、类的属性和方法名全部采用小写字母,多个字母间用“_”分隔。使用单下划线“_”开头的模块变量或者函数是受保护的。Pascal是以法国数学家BlaisePascal而命名的一种编程语言。Python程序基础语法输入和输出variable=input("提示文字")print(输出内容)保留字与标识符保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象的名称来使用。[概念]andasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromFalseglobalifimportinislambdanonlocalnotNoneorpassraisereturntryTruewhilewithyield

注意

Python的保留字区分字母大小写。ifFalseIFfalse在开发程序时,如果使用Python中的保留字作为模块、类、函数或者变量的名称时,将产生无效语法。常见错误Aa_8名字不能放在第一位@、$、%正确的标识符错误的标识符numbername48USERIDO_0Try300warrior$moneyone%twoUserNametrygoodGood__标识符类的私有成员__标识符__专用标识__init__()_标识符保护变量__add_add变量在程序运行过程中,值不能改变的量。[常量]必须是一个有效的标识符不能使用Python中的保留字慎用小写字母l和大写字母O选择有意义的单词基本数据类型数据类型就是数据的类型。[概念]数据类型转换4字符串类型2布尔类型3数字类型1整数1浮点数2复数3整数十进制八进制二进制十六进制0~9逢十进一0~7逢八进一0~1逢二进一0~9,A~F逢十六进一88480o1231100x5E68315106浮点数整数部分小数部分.复数实部虚部3.143.14+12.5j12.5j字符串类型字符串是连续的字符序列,可以是计算机所能表示的一切字符的集合。[概念]字符串属于不可变序列''""''''''马云马云马云内容必须写在一行上内容可以分多行写转义字符是指使用“\”对一些特殊字符进行转义。[概念]转义字符说

明\续行符\n换行符\0空\t水平制表符,用于横向跳到下一制表位\"双引号\'单引号\\一个反斜杠\f换页\0dd八进制数,dd代表的字符,如\012代表换行\xhh十六进制数,hh代表的字符,如\x0a代表换行布尔类型注意TruetrueFalsefalseFalse或None空序列(空字符串、空元组、空列表、空字典)对象的__bool__方法返回False或者__len__方法返回00、0.0、虚数0数据类型转换整型int()浮点型float()字符串类型str()整数转换为十六进制字符串hex()整数转换为八进制字符串oct()运算符逻辑运算符4赋值运算符2比较运算符3算术运算符1位运算符5%36÷5=7……136%5=136%-5=-1-36%-5=-1/36/5=7.2//36//5=7总结:+、-、*、/、//、%除法运算符/和//的区别除数不能为0浮点类型整数类型赋值运算符=

+=-=

*=/=%=age+=1age+1age赋值运算符(=)等于号(==)比较运算符真假TrueFalse大于>等于==不等于!=大于或等于>=小于或等于<=小于<比较运算当需要判断一个变量是否介于两个值之间时,可以采用“值1<变量<值2”的形式。秘笈0<n<50逻辑运算符逻辑与:and一假则假逻辑或:or一真则真逻辑非:not真变假,假变真位运算符700000111二进制位运算000000000000011111111111111110010变1,1变0全0或全1才为0位运算符位或&位与|位取反~位异或^左移位<<右移位>>有1即为1有0即为0

0000000000001100&

0000000000001000

0000000000001000

0000000000000100|

0000000000001000

0000000000001100十进制12和8进行位与运算十进制4和8进行位或运算与运算的结果是8或运算的结果是12位与运算位或运算

0000000000011111^

0000000000010110

0000000000001001~

0000000001111011

1111111110000100位异或运算位取反运算位异或运算的结果为9位取反运算的结果为-124十进制31和22进行位异或运算十进制123进行位取反运算0变1,1变0全0或全1才为0位运算符位或&位与|位取反~位异或^左移位<<右移位>>有1即为1有0即为0乘以2的n次幂除以2的n次幂0011000001100000左移后补0左移1位0被舍弃十进制:48十进制:9696=48*2,192=48*2211000000左移2位左移后补00被舍弃十进制:192左移相当于乘以2的n次幂001100000001100010110000十进制:48十进制:24十进制:-80十进制:-20111011000被舍弃0被舍弃右移1位右移后补0右移2位右移后补124=48/2-20=-80/22右移相当于除以2的n次幂运算符的优先级

Python运算规则:优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序执行。先乘除,后加减

优先级从高到底类

型运算符说

明单目运算符~、+、-取反、正号和负号算术运算符*、/、%、//乘、除、求余+、-

加、减位运算符<<、>>左移、右移&

位与^

位异或|

位或比较运算符<、<=、>、>=、!=、==

小于、小于等于、大于、大于等于、不等于、等于a=2b=3a*b+511a*(b+5)16算式结果优先计算括号内的值优先计算乘法可以使用()改变优先级总结:1.按照运算符的优先级从高到低执行。2.同一级别的按照从左到右的顺序执行。3.有小括号的,先算小括号中的。流程控制语句程序结构顺序结构选择结构循环结构[程序结构]顺序结构选择结构语句块1语句块2表达式真假循环结构语句块表达式真假选择语句if语句的嵌套4if…else语句2if…elif…else语句3简单的if语句1if表达式:语句块布尔值一个Tab或4个空格if…else语句if表达式:语句块1布尔值一个Tab或4个空格else:语句块2if…elif…else语句

如果满足某种条件,就进行某种处理,否则,如果满足另一种条件,则执行另一种处理……if表达式1:语句块1else:语句块nelif表达式2:语句块2……语句块1语句块2表达式1真假表达式2真……假……真假语句块nif语句的嵌套简单的if语句if…else语句if…elif…else语句if表达式1:else:

语句块1if表达式2:

语句块2else:

语句块3条件表达式结果1if

表达式else

结果2变量循环语句while循环1for循环2循环嵌套3while条件表达式:

循环体循环体表达式真假for循环for迭代变量in对象:

循环体range(start,end,step)起始值(包括)结束值(不包括)取下一项序列中是否有项有没有循环体循环嵌套while条件表达式1:while条件表达式2:

循环体2

循环体1while条件表达式:for迭代变量in对象:

循环体2

循环体1for迭代变量in对象:while条件表达式:

循环体2

循环体1跳转语句break语句1continue语句2总结:break语句只跳出一次循环完全跳出循环continue语句pass空语句[概念]pass语句,表示空语句。它不做任何事情,一般起到占位作用。列表和元组序列[概念]

序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值。乘法4切片2序列相加3索引1检查某个元素是否是序列的成员5计算序列的长度、最大值和最小值6索引编号0

123

4元素1元素2元素3元素4元素5索引从0开始计数-5-4-3-2

-1元素1元素2元素3元素4元素5索引可以是负数切片(Sliceing)元素1元素2元素3元素4元素5元素2元素3元素4sname[start:end:step]起始值(包括)结束值(不包括)序列相加(Adding)序列1+序列2序列1序列2注意只能是同类型的序列相加。列表+列表元组+元组字符串+字符串列表+元组列表+字符串元组+字符串乘法(Multiplying)乘数*乘数积序列*乘数重复n次的序列检查某个元素是否是序列的成员valueinsequence要检查的元素序列计算序列的长度、最大值和最小值计算序列的长度len()返回序列中的最大元素max()返回序列中的最小元素min()list()str()enumerate()sum()reversed()sorted()列表(list)列表[]元素1,元素2,……,元素n可变序列添加、修改和删除列表元素访问列表元素遍历列表列表的创建和删除对列表进行统计计算对列表进行排序列表推使用赋值运算符直接创建列表1创建空列表2创建数值列表3dellistname访问列表元素直接使用print()函数输出1索引2切片3遍历列表直接使用for循环1使用for循环和enumerate()函数2添加、修改和删除列表元素列表1.append(新元素)列表1中的元素,新元素append()添加元素append()extend()>>追加元素>>添加列表根据索引删除1根据元素值删除2del语句根据索引删除remove()根据值删除对列表进行统计计算count()index()sum()对列表进行排序使用列表对象的sort()方法1使用内置的sorted()函数2对列表排序列表对象的sort()方法内置的sorted()函数原列表改变原列表不变列表推导式

列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。[概念]list=[Expressionforvarinrange]range()函数元组(tuple)元组()元素1,元素2,……,元素n元组推导式4访问元组元素2修改元组元素3元组的创建和删除1使用赋值运算符直接创建元组1创建空元组2创建数值元组3dellistname访问元组元素直接使用print()函数输出1索引2切片3修改元组元素元组推导式

元组推导式可以快速生成一个元组,或者根据某个元组生成满足指定需求的元组。[概念]元组推导式类似于列表推导式()[]元组与列表的区别列表元组不可变序列(不能添加、修改和删除元素,可以整体替换)可变序列(随时添加、修改或者删除)支持切片的操作(只能访问元组中的元素)支持切片的操作(可以访问、修改元组中的元素)元组访问速度快列表访问速度慢元组可以作为字典键不能作为字典的键字典和集合字典(dictionary)KeyValue添加、修改和删除字典元素4通过键值对访问字典2遍历字典3字典的创建和删除1字典推导式5音节索引['che','chen','cheng','chi']正文汉字['车','尘','称','吃']'chi''吃':'che':'车''chen':'尘''cheng':'称',,,{}'chi':'吃''che':'车''chen':'尘''cheng':'称',,,{}字典dictionary={'key1':'value1','key2':'value2',…,'keyn':'valuen'}list1['che','chen','cheng','chi']list2['车','尘','称','吃']zip(list1,list2)dict()zip对象dictfromkeys()方法通过键值对访问字典dict[键]dict[索引]dictionary.get(key,[default])get()遍历字典添加、修改和删除字典元素dictionary[key]=value字典推导式类似于列表推导式{键表达式:值表达式for循环}[]集合(set)可变集合set不可变集合frozenset[概念]

Python:用于保存不重复元素,最好的应用是去重。集合的创建1集合的添加和删除2集合的交、并和差集运算3{}大写的拉丁字母N空集合:空字典:{}set()集合的添加和删除向集合中添加元素1从集合中删除元素2add()setname.add(element)不能是列表、元组等可迭代对象remove()从集合中删除元素删除一个指定元素pop()随机删除一个元素clear()删除全部元素集合的交集、并集和差集运算AB交集并集差集ABAB&|-ABA对称差集AB^ABA字符串与正则表达式字符串常用操作分割、合并字符串计算字符串的长度截取字符串拼接字符串检索字符串字母的大小写转换去除字符串中的空格和特殊字符格式化字符串字符串1+字符串2字符串1字符串2计算字符串的长度len(string)ABCD123456789.中文汉字_空格占一字节占2~4字节UTF-8占3个

人生

苦短,

我

用

P

y

t

h

o

n!13*71*7UTF-83

人生苦短,我

用P

y

t

h

o

n!12*71*7GBK22821截取字符串string[start:end:step]起始值(包括)结束值(不包括)分割、合并字符串listname=str.split(sep,maxsplit)空格、换行符“\n”、制表符“\t”分割次数,-1表示没有限制strnew=string.join(iterable)合并时的分隔符可迭代对象检索字符串str.count(sub[,start[,end]])str.find(sub[,start[,end]])str.find(sub[,

start[,

end]])

字母的大小写转换ABCabc大写转小写ABCabc小写转大写lower()upper()去除字符串中的空格和特殊字符str.strip([chars])空格、制表符\t、回车符\r、换行符\nstr.lstrip([chars])空格、制表符\t、回车符\r、换行符\nstr.rstrip([chars])空格、制表符\t、回车符\r、换行符\n格式化字符串使用%操作符1使用字符串对象的format()方法2推荐'%[-][+][0][m][.n]格式化字符'%exps:字符串d:十进制整数f:浮点数str.format(args){[index][:[[fill]align][sign][#][width][.precision][type]]}正则表达式[概念]正则表达式是一种用来匹配字符串的强有力的武器。设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,就认为它“匹配”,否则就不匹配。字符类元字符限定符行定位符排除字符选择字符转义字符分组行定位符$^^表示开始:"HiPythonHi明日科技"$表示结束:"^Hi""HiPythonHi明日科技""科技$"元字符.匹配除换行符以外的任意字符\w匹配字母、数字、下划线或汉字\W匹配字母、数字、下划线或汉字以外的字符\s匹配任意的空白符\b匹配单词的开始或结束\d匹配数字限定符?匹配前面的字符零次或一次colou?r:匹配colour和color+匹配前面的字符一次或多次go+gle:匹配的范围从gogle到goo…gle*匹配前面的字符零次或多次go*gle:匹配的范围从ggle到goo…gle{n}匹配前面的字符n次go{2}gle:只匹配google{n,}匹配前面的字符最少n次go{2,}gle:匹配的范围从google到goo…gle{n,m}匹配前面的字符最少n次,最多m次employe{0,2}:匹配employ、employe和employee字符类()[aeiou][\u4e00-\u9fa5]排除字符^[^a-zA-Z]选择字符|[a-z]|[0-9]转义字符\[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}分组()(\.[0-9]{1,3}){3}'[^a-zA-Z]''\bm\w*\b''\\bm\\w*\\b'r'\bm\w*\b'使用re模块实现正则表达式操作匹配字符串1替换字符串2分割字符串3re.match(pattern,string,[flags])re.I:不区分字母大小写re.A:让\w不匹配汉字re.search(pattern,string,[flags])re.I:不区分字母大小写re.A:让\w不匹配汉字re.findall(pattern,string,[flags])re.I:不区分字母大小写re.A:让\w不匹配汉字替换字符串re.sub(pattern,repl,string,count,flags)re.I:不区分字母大小写re.A:让\w不匹配汉字使用正则表达式分割字符串re.split(pattern,string,[maxsplit],[flags])re.I:不区分字母大小写re.A:让\w不匹配汉字函数[概念]

简单理解:函数就是可以完成某项工作的代码块。函数的创建和调用创建函数1调用函数2deffunctionname([parameterlist]):['''comments'''][functionbody]不写()

returnfunctionname([parametersvalue])

()参数传递为参数设置默认值4位置参数2关键字参数3了解形式参数和实际参数1可变参数5defdemo(obj):

print(obj)

mot="唯有在被追赶的时候,你才能真正地奔跑。"demo(mot)list1=['绮梦','冷伊一','香凝','黛兰']demo(list1)形式参数实际参数不可变对象值传递引用传递改变形式参数的值可变对象不改变形式参数的值位置参数[概念]位置参数是必须按照定义时的个数和顺序进行参数传递,也称必备参数。关键字参数[概念]关键字参数是指使用形式参数的名字来确定输入的参数值。deffunctionname(p1,p2,p3):#……省略了函数体的代码functionname(p1=value1,p2=value2,p3=value3)functionname(p1=value1,p3=value3,p2=value2)结果一样为参数设置默认值deffunctionname(…,[parameter1=defaultvalue1]):[functionbody]放在所有参数的最后可变参数可变参数个数不固定的参数0个、1个、2个……n个参数*parameter1**parameter2可变参数*parameter**parameter列表字典返回值return[value]

None变量的作用域[概念]变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误。局部变量1全局变量2局部变量a函数局部变量a无效有效全局变量全局变量a函数全局变量a有效有效全局变量a匿名函数(lambda)result=lambda[arg1[,arg2,……,argn]]:expression可以有多个不能出现for或while等常用Python内置函数dict()用于创建一个字典help()用于查看函数或模块用途的详细说明dir()不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。hex()用于将10进制整数转换成16进制,以字符串形式表示next()返回迭代器的下一个项目divmod()把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a//b,a%b)id()用于获取对象的内存地址sorted()对所有可迭代的对象进行排序操作ascii()返回一个表示对象的字符串,但是对于字符串中的非ASCII字符则返回通过repr()函数使用\x,\u或\U编码的字符oct()将一个整数转换成8进制字符串bin()返回一个整数int或者长整数longint的二进制表示open()用于打开一个文件str()将对象转化为适于人阅读的形式sum()对序列进行求和计算filter()用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表format()格式化字符串len()返回对象(字符、列表、元组等)长度或项目个数list()用于将元组转换为列表range()返回的是一个可迭代对象(类型是对象)zip()用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象compile()将一个字符串编译为字节代码map()根据提供的函数对指定序列做映射reversed()返回一个反转的迭代器round()返回浮点数x的四舍五入值模块模块概述模块是Python程序模块*.py

把能够实现某一特定功能的代码放置在一个文件中作为一个模块,从而方便其他程序和脚本导入并使用。可以避免函数名和变量名冲突提高代码的可重用性有选择的使用更容易查找代码自定义模块自己编写的Python程序Python文件自定义模块模块函数变量可执行代码类模块搜索目录4使用import语句导入模块2使用from…import语句导入模块3创建模块1模块名不能是Python自带的标准模块名称。注意文件名模块名+.py使用import语句导入模块importmodulename[asalias]别名使用from...import语句导入模块frommodelnameimportmember变量、函数、类*模块搜索目录临时添加1增加.pth文件2在PYTHONPATH环境变量中添加3推荐以主程序的形式执行包含main()的主类Java/C#程序入口Python没有程序入口Python中的包文件夹__init__.py包模块避免模块名重名引发的冲突避免函数名和变量名重名引发的冲突包Python程序的包结构1创建和使用包2创建包1使用包2import+完整包名+模块名from+完整包名+import+模块名from+完整包名+.模块名+import+定义名引用其他模块导入和使用标准模块1第三方模块的下载与安装2第三方模块的下载与安装//pypipippip<command>[modulename]installuninstalllist标准模块第三方模块自定义模块面向对象程序设计面向对象概述封装对象类继承多态属性方法对象静态的动态的大雁类属性方法(行为)一只要从北方飞往南方的大雁对象类的定义和使用创建类的成员并访问4创建类的实例2魔术方法__init__()3定义类1访问限制5classClassName:'''类的帮助信息'''

statement大写字母开头的“驼峰式命名法”创建类的实例ClassName(parameterlist)__init__()创建__init__()方法构造方法__init__()自动执行创建类的成员并访问实例方法数据成员属性方法deffunctionName(self,parameterlist):block必须instanceName.functionName(parametervalue)数据成员类属性实例属性所有实例之间共享值在类中,并且方法体外只作用于当前实例在类中,并且方法体内访问限制没有权限限制权限修饰符JavaPython_foo__fooprotectedprivate__foo__系统类本身可以访问类本身和子类可以访问__init__()类的实例名._类名__xxx总结:_foo__foo>>保护类型>>私有类型类本身及其子类可以通过实例名访问类本身不能通过实例名访问类的实例名._类名__xxx属性(property)property类属性和实例属性返回所存储的值访问计算后所得的值创建用于计算的属性1为属性添加安全保护机制2@property装饰器@propertydefmethodname(self):block

return为属性添加安全保护机制__foo不能修改也不能读取@property继承继承的基本语法1方法重写2派生类中调用基类的__init__()方法3classClassName(baseclasslist):'''类的帮助信息'''

statementobject文件与文件夹操作基本文件操作打开文件写入内容读取内容关闭文件也可以不关闭File对象写入文件内容4关闭文件2打开文件时使用with语句3创建和打开文件1读取文件5file=open(filename[,mode[,buffering]])rwa+可读写+二进制mode参数的参数值r以只读模式打开文件。文件的指针将会放在文件的开头rb以二进制格式打开文件,并且采用只读模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等r+打开文件后,可以读取文件内容,也可以写入新的内容覆盖原有内容(从文件开头进行覆盖)rb+以二进制格式打开文件,并且采用读写模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等w以只写模式打开文件wb以二进制格式打开文件,并且采用只写模式。一般用于非文本文件,如图片、声音等w+打开文件后,先清空原有内容,使其变为一个空的文件,对这个空文件有读写权限wb+以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等a以追加模式打开一个文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入ab以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入a+以读写模式打开文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写ab+以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写file.close()withexpressionastarget:with-bodyfile.write(string)file.read([size])r(只读)或者r+(读写)file.readline()r(只读)或者r+(读写)目录操作osos.path[概念]

os模块是Python内置的与操作系统功能和文件系统相关的模块。该模块中的语句的执行结果通常与操作系统有关。创建目录4路径2判断目录是否存在3os和os.path模块1删除目录5遍历目录6

os模块提供的与目录相关的函数getcwd()返回当前的工作目录listdir(path)返回指定路径下的文件和目录信息mkdir(path[,mode])创建目录makedirs(path1/path2…[,mode])创建多级目录rmdir(path)删除目录removedirs(path1/path2……)删除多级目录chdir(path)把path设置为当前工作目录walk(top[,topdown[,onerror]])遍历目录树,该方法返回一个元组,包括所有路径名、所有目录列表和文件列表3个元素

os.path模块提供的与目录相关的函数abspath(path)用于获取文件或目录的绝对路径exists(path)用于判断目录或者文件是否存在,如果存在则返回True,否则返回Falsejoin(path,name)将目录与目录或者文件名拼接起来splitext()分离文件名和扩展名basename(path)从一个目录中提取文件名dirname(path)从一个路径中提取文件路径,不包括文件名isdir(path)用于判断是否为路径os.path.abspath(path)os.path.join(path1[,path2[,……]])os.path.exists(path)os.makedirs(name,mode=0o777)os.rmdir(path)os.walk(top[,topdown][,onerror][,followlinks])(dirpath,dirnames,filenames)字符串列表列表高级文件操作删除文件1重命名文件和目录2获取文件基本信息3os.remove(path)os.rename(src,dst)os.stat(path)异常处理与程序调试异常概述NameErrorIndexErrorValueErrorTypeErrorIndentationErrorImportErrorMemoryErrorKeyErrorIOError异常处理语句使用raise语句抛出异常4try…except…else语句2try…except…finally语句3try…except语句1try:block1except[ExceptionName[asalias]]:

block2try:block1except[ExceptionName[asalias]]:

block2else:block3没有出现异常时执行try:block1except[ExceptionName[asalias]]:

block2finally:block3始终执行总结:try…excepttry…except…finallytry…except…elseexcept语句块else语句块是否抛出异常是否try语句块finally语句块raise[ExceptionName[(reason)]]程序调试使用自带的IDLE进行程序调试1使用assert语句调试程序2assertexpression[,reason]False:AssertionErrorPygame游戏编程安装Pygamepipinstallpygame安装Pygamepipinstall-i/simple/--trusted-hostpygame安装超时Pygame常用模块pipinstallpygame模块名功能pygame.cdrom访问光驱pygame.cursors加载光标pygame.display访问显示设备pygame.draw绘制形状、线和点pygame.event管理事件pygame.font使用字体pygame.image加载和存储图片pygame.joystick使用游戏手柄或者与其类似的东西pygame.key读取键盘按键pygame.mixer声音pygame.mouse鼠标pygame.movie播放视频pygame.music播放音频pygame.overlay访问高级视频叠加pygame.rect管理矩形区域pygame.sndarray操作声音数据pygame.sprite操作移动图像pygame.surface管理图像和屏幕pygame.surfarray管理点阵图像数据pygame.time管理时间和帧信息pygame.transform缩放和移动图像Pygame的基本使用运行效果实现步骤创建窗口添加小球移动小球检测碰撞运行效果网络爬虫初识网络爬虫[优点]快速开发1跨平台2解释性3多种网络爬虫框架4基本原理网络爬虫的常用技术网络请求1请求headers处理2网络超时3代理服务4使用BeautifulSoup解析HTML5使用BeautifulSoup解析HTML

Urllib模块1Urllib3模块2Requests模块3请求headers处理网络超时网络断开1网络不稳定2网络堵塞3网速过慢4代理服务使用BeautifulSoup解析HTMLBeautifulSoup是一个用于从HTML和XML文件中提取数据的Python库。BeautifulSoup提供了一些简单的函数来实现导航、搜索、修改分析树等功能。安装BeautifulSoup1使用BeautifulSoup2网络爬虫常用框架Scrapy爬虫框架1Crawley爬虫框架2PySpider爬虫框架3Scrapy爬虫框架

源码地址:/binux/pyspider/releases文档地址:/

Scrapy爬虫框架的使用搭建Scrapy爬虫框架创建Scrapy项目创建爬虫获取数据数据分析什么是数据分析数据分析是将数学、统计学理论结合科学的统计分析方法(如线性回归分析、聚类分析、方差分析、时间序列分析等)对数据库中的数据、Excel数据、收集的大量数据、网页抓取的数据等进行分析,从中提取有价值的信息形成结论并进行展示的过程。NumPy的诞生NumericalNumarrayNumPy开源免费1编码效率高2执行效率高3扩展性好4NumPy的安装pipinstallPycharm安装NumPy的数据类型数据类型描述数据类型np.bool布尔值(True或False)np.half/np.float16半精度浮点数:1个符号位,5位指数位,10位小数部分_默认的整数类型(与C语言中的long相同,通常为int32或int64)np.float32单精度浮点数,1个符号位,8个指数位,23位小数部分c与C的int类型一样,(通常为int32或int64)np.float64/np.float_双精度浮点数,1个符号位,11个指数位,52位小数部分p用于索引的整数类型(与C中的size_t相同,通常为是int32或int64)plex64复数,表示两个32位浮点数(实数部分和虚数部分)8字节(-128到127)plex128/plex_复数,表示两个64位浮点数(实数部分和虚数部分)16整数(-32768至32767)32整数(-2147483648至2147483647)64整数(-9223372036854775808至9223372036854775807)np.uint8无符号整数(0到255)np.uint16无符号整数(0到65535)np.uint32无符号整数(0到4294967295)np.uint64无符号整数(0到18446744073709551615)数组对象ndarrayaxis0一维数组二维数组123451234554321axis0axis1axis0axis1axis2三维数组numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)参数名称说明object数组或嵌套序列的对象dtype数组所需的数据类型copy对象是否需要拷贝order指定数组的内存布局,C为行方向排列,F为列方向排列,A为任意方向(默认)subok默认返回一个与基类类型一致的数组ndmin指定生成数组的最小维度数据类型对象dtypedtype属性1dtype()函数2numpy.dtype(obj[,align,copy])参数名称说明object数组或嵌套序列的对象align如果为true,填充字段使其类似C的结构体。copy是否复制dtype对象,如果为false,则是对内置数据类型对象的引用。安装pandas模块pipinstallPycharm安装Series对象012Series对象54321‘我爱Python’False数值类型字符类型布尔类型等…abcDataFrame对象DataFrame对象列标签索引数据axis0axis1Matplotlib模块基本用法pyplot子模块的绘图流程pyplot子模块的常用语法安装Matplotlibpyplot子模块的绘图流程函数名称描述pyplot.figure()调用该函数可以创建一个空白的画布。figure.add_subplot()调用该函数用于实现在画布中添加子图,可以指定子图的行数、列数和图表的编号。例如在add_subplot()函数中填写221代表将画布分割成2行2列,图表画在从左到右从上到下的第1块pyplot.subplots()调用该函数用于实现分图展示,就是在一个绘图窗体中显示多个图表,例如在subplots()函数中填写121代表在画布中绘制1行2列的图表1。pyplot.subplot2grid()调用该函数用于实现非等分画布形式的图形展示,通过设置subplot2grid()函数中rowspan和colspan参数可以让子图跨越固定网格布局的多个行和列,实现不同的子图布局。创建画布与添加子图的函数函数名描述函数名描述pyplot.title()调用该函数用于设置图表的标题文字,可以为其指定位置、颜色以及字体大小等参数pyplot.xticks()调用该函数用于设置当前图表x轴的刻度或文本标签pyplot.xlabel()调用该函数用于设置图表中x轴的名称,可以为其指定位置、颜色以及字体大小等参数pyplot.yticks()调用该函数用于设置当前图表y轴的刻度或文本标签pyplot.ylabel()调用该函数用于设置图表中y轴的名称,可以为其指定位置、颜色以及字体大小等参数pyplot.plot()调用该函数用于绘制图表,此函数需要填写绘制点的x与y坐标pyplot.xlim()调用该函数用于设置当前图表x轴的范围,该值为区间值,不可以是一个字符串pyplot.savafig()调用该函数用于保存绘制的图表,可以为其指定图表的分辨率、边缘颜色等参数pyplot.ylim()调用该函数用于设置当前图表y轴的范围,该值为区间值,不可以是一个字符串pyplot.show()调用该函数用于显示当前已经绘制完成的图表pyplot.legend()调用该函数用于设置当前图表的图例,可以为其指定图例的大小、位置以及标签绘制图表常用的函数绘制常用图表绘制条形图1绘制折线图2绘制饼图3绘制条形图参数名参数含义参数名参数含义xx轴的数据,一般采用arange函数产生一个序列edgecolor条形边框颜色heighty轴的数据,也就是柱形图的高度,一般就是我们需要展示的数据linewidth条形边框的宽度width条形的宽度,可以设置0~1之间分浮点类型,默认为0.8alpha条形图的透明度color条形图的颜色matplotlib.pyplot.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)实现效果绘制折线图参数名参数含义参数名参数含义xx轴数据,接受列表类型的数据marker设置折线点的类型yy轴数据,接受列表类型的数据markerfacecolor设置折线点实心颜色linewidth绘制折线的宽度markersize设置折线点的大小color设置折线的颜色linestyle设置折线类型,默认为“-”matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)实现效果绘制饼图参数名参数含义参数名参数含义x设置绘制饼图的数据,也就是饼图中每个部分的大小shadow是否设置阴影explode设置饼图凸出部分startangle起始角度,默认从0开始逆时针转label设置饼图各部分标签文本pctdistance设置饼图内文本与圆心的距离labeldistance设置饼图标签文本距离圆心的位置,1.1表示1.1倍半径colors设置饼图内各部分颜色autopct设置饼图内文本的显示方式matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None,counterclock=True,wedgeprops=None,textprops=None,center=(0,0),frame=False,rotatelabels=False,*,data=None)实现效果常用Web框架常用Web框架概述管理路由访问数据库管理会话和Cookies创建模板来显示HTML促进代码的重用框架提供的常用功能Python中常用的Web框架Flask框架django框架Flask框架介绍Flask框架安装虚拟环境虚拟环境安装virtualenv创建虚拟环境激活虚拟环境安装Flask(1)使用下列pip命令可安装Flask。pipinstallflask(2)安装完成以后,可以通过如下命令查看所有安装包。piplist--formatcolumns第一个Flask程序<实例>输出HelloWorld开启调试模式(1)直接在应用对象上设置app.debug=Tru

温馨提示

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

最新文档

评论

0/150

提交评论