Python学习笔记报告.doc

上传人(卖家):2023DOC 文档编号:6010683 上传时间:2023-05-21 格式:DOC 页数:83 大小:3.47MB
下载 相关 举报
Python学习笔记报告.doc_第1页
第1页 / 共83页
Python学习笔记报告.doc_第2页
第2页 / 共83页
Python学习笔记报告.doc_第3页
第3页 / 共83页
Python学习笔记报告.doc_第4页
第4页 / 共83页
Python学习笔记报告.doc_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、Python基本数据类型讲解1、 python一切皆为对象2、 Python一切皆为指针3、 基本数据类型Int bool(True False) string list tuple(元组) dict字典4、 数据类型的可变与不可变Int bool string 不可变类型List tuple dict 可变类型5、 变量赋值一切皆为引用,动态性与动态类型只为何不在动态。Type isinstance字符串认知与应用1、 字符串概念2、 len之认识3、 转义符让文本更好处理 要转义的字符前面加反斜杠4、 字符串前面小尾巴到底是什么u”哈哈” Unicode编码r”哈哈” 不转码5、 替换字符

2、串 replace6、 字符串拼接 join(a,b,c)7、 读写文件d=open(文件名 , w)d.write(hi.nsecond hi.)d.close()d=open(文件名 , r)d.readline() / d.read(0)Python基本数据类型讲解1、 数据类型与可变类型变量2、 再谈字符串 序列到底是什么 1、三个符号的区别,”,” “” 2、如何修改字符串 replace find 3、格式化细究 1、%格式化方式 “this is a %s” % “apple” 2、format格式化方式 “this is a 1 0” .format(“apple” , “my

3、”) “this is a fruit whose” . format(fruit=“apple” , whose=“my”) 3、为什么要用format 4、还有一个方法,字典来了 4、再议打开文件 linecache 1、读文件.getline() 2、读文件.getlines()列表 1、有序的集合 2、通过偏移来索引,从而读取数据 3、支持嵌套 4、可变的类型1、 切片 slice a = 1 , 2 , 3, 4, 5, 6, 7 number1:3 2 3正向索引反向索引默认索引2、 添加操作 +生成一个新的列表 Extend 接收参数并将该参数的每个元素添加到原有列表中 Appe

4、nd 添加任意对象到列表的末端 Insert 插入任意对象到列表中,可以控制插入位置。3、 修改操作修改列表本身只需要直接赋值就行4、 删除操作Del 通过索引删除指定位置元素 非函数 例如:del number9Remove 移除列表中指定值的第一个匹配值Pop 返回最后一个元素,并从list中删除5、 成员关系:In/not in 我们可以判断一个元素是否在列表里 返回一个bool类型6、 列表推导式:expr for iter_var in iterable首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_v

5、ar的内容,最后用表达式的计算值生成一个列表。比如要生成一个包含1到10的列表x for x in range(1,11)expr for iter_var in iterable if cond_expr只有满足条件才可以生成列表。7、 排序翻转 sort reverse1、 内置list方法A = “cdc”List(a) 返回一个列表,参数是可迭代对象。里面输出内容还是保持了传入的可迭代对象的元素和顺序.如果参数为空,则返回一个空的列表2、 xrange和range的具体区别2.1、xrange的用法Xrange(开始,结束,步长)Range直接生成一个列表对象Xrange“它是生成一个

6、xrange对象Xrange用法:1、 操作一个非常大的数据,而且内存比较吃紧时。2、 Xrange一般用在循环里边。简单函数1、def定义函数的关键字2、形参不需要类型修饰3、函数体定义需要:4、函数体整体进行缩进5、函数可以拥有返回值,若无返回值返回None,相当于C中的NULL局部变量与全局变量1、局部变量作用域覆盖全局变量2、函数内有局部变量定义,解释器不使用全局变量,局部变量的定义晚于被引用,报错3、代码体内可以直接访问全局变量4、函数体内修改全局变量,必须使用关键字global表达式算术表达式逻辑表达式关系表达式位运算语法格式缩进表示,函数、分枝、循环。:千万不能丢List列表(数

7、组)元组Tuple(只读列表)字典Dictiontory 键值对Direct help(dict) X = Dict(fdfd , erer) , )X = Dict(“fdf” = “ee”)X.fromkeys(keys, values)方法: keys values() items() get() setdefault(keys,values)集合: set frozenset字符串处理与特殊函数:单引号 双引号 三引号(支持字符串跨行)模块:文档字符串xxxxxxx xxx._doc_ 关键字参数: def hello(name , words) Hello(name=”mmmm” ,

8、 words=”dfdfdf”)默认参数收集参数lambda 参数:表达式(返回值)filter() map()import syssys.setrecursionlimit(1000000) 递归最大深度在Python类中定义的方法通常有3种:实例方法、类方法、以及静态方法实例方法一般以self做为参数类方法一般以cls做为参数,定义时使用classmethod,那么通过引用的必定是类对象的属性和方法。静态方法不需要默认的任何参数,定义时使用staticmethod引入模块方法:import mathmath.sin(32)或者from math import *sin(32)常量命名时通常

9、使用大写字母,如:NAME=helloOS模块: 文件操作永久保存(保存为文件)#写Import pickleMylist = Picklefile = open(mylist.pkl , wb)Pickle.dump(Mylist , picklefile)Picklefile.close()#读Picklefile = open(mylist.pkl , rb)Mylist = pickle.load(pickfile)Exception try: except Error as reason: finally: raise Error类型 引发异常Else语句 要么怎样,要么不怎样 if

10、 else语句 干完了能怎样,干不完就别想怎样 while else 语句 没有问题,那就干吧 Try: Except Error as reason: Else: with语句(关闭文件)例如:Try: F = open(“hello.txtx” , r) Except OSError as reason: Print(reason)Finally: F.close()Try: With open(“hello.txtx” , r) as fExcept OSError as reason: Print(reason)类的属性与方法我们约定:类名以大写字母开头OO的特征 OOP面向对象编程封

11、装(信息隐蔽技术)继承多态构造方法_init_(self , paramer1, paramer2, .)公有和私有 无关键字,理论上类的方法与属性都是公开的,Python采用了一种name mangling (名字改编 , 名字重组)即添加_即为私有属性。(可以通过 _类名_ 属性访问私有属性)继承:class 子类名(父类名1,父类名2,.) 如果子类中定义与父类名字一样的方法或者属性,则覆盖父类的属性或方法。使用super()函数 super()._init_()类定义、类对象和实例对象属性名与方法名相同,属性覆盖方法。绑定:Python要求方法必须有实力才能被调用,这种限制就是绑定。B

12、IFIssubclass(子类,(父类或父类元组))Isinstance(对象类型,(父类或父类元组))Hasattr(对象,属性名)Getattr(object , name,default) Getattr(A , x, “您所打印的属性不存在”)Setattr(object, name, value)Delattr(object, name)(属性设置属性)property(fget, fset, fdel, doc)例如;X = property(getsize , setsize, delsize)构造和析构_new_(cls, .)_init_(self, .)_del_(self

13、)time模块 属性访问:描述符:将某种特殊类型的类的实例指派给另一个类的属性。特殊类型实现三个方法_get_(seld , instance, owner) 用于访问属性,它返回属性的值。_set_(self, instance, value) 将在属性分配操作中调用,不反回任何内容。_delete_(self , instance) 控制删除操作,不反回任何内容定制容器:协议(编程接口)如果定制的容器不可变,需要定义_len_(self)和_getitem_(self,key)方法。如果定制的容器不可变,需要定义_len_()、_getitem_()、_setitem_(self,key,

14、 value)和_delitem_(self, key)方法。迭代器:iter()next()例如:string = “hello”it = iter(string)next(it)生成器:是迭代器的一种实现。普通函数加上yield即可。协同进程就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。 def myGen():print(hello)yield 1yield 2结果: next(m)hello1 next(m)2模块:容器:数据的封装函数:语句的封装类:方法和属性的封装模块:程序命名空间:导入模块:第一种: import 模块名第二种:

15、from 模块名 import 函数名第三种:import 模块名 as 新名字 If _name_ = _main_(区分模块与主程序) 搜索路径:import sysSys.pathSys.path.append(“路径”) 添加搜索路径包(package):1、 创建一个文件夹。(包名)2、 文件夹内创建一个_init_.py文件,可以是空文件。3、 导入包 import 包名.模块名Python自己带着电池 Batteries included开发哲学 优雅、明确、简单开发者的哲学 用一种方法,最好是只有一种方法来做一件事Python标准库Import 模块名模块名._doc_dir(

16、模块名) 属性模块名._all_ 调用的方法模块名._file_ 查看文件路径爬虫:Python如何访问互联网。urllib URL + libURL 有三部分组成: 协议 IP地址 资源的具体地址import urllib.requestresponse = urllib.request.urlopen(cat_img = response.read()with open(cat_500_600.jpg, wb) as f: f.write(cat_img)修改headers: 通过Request的headers参数修改通过Request.add_header()方法修改延迟提交时间:imp

17、ort timetime.sleep()代理:步骤:1、 参数是一个字典类型:代理IP:端口号proxy_support = urllib.request.ProxyHandler()2、 定制、创建一个openeropener= urllib.request.build_opener(proxy_support)3、 安装opener urllib.request.inatall_opener()4、 调用openeropener.open(url) 正则表达式:import rere.search(正则表达式, 字符串) 元字符: . $ * + ? | () re.findall(正则表

18、达式, 字符串)如果你需要重复的使用某个正则表达式,那么你可以先将该正则表达式编译成模式对象。我们使用re,compile()来编译。例如:p = pile(r”A-z”) r = p.search(字符串) r.group()Scrapy: Tkinter: TK + Interface (默认GUI库)import tkinterDjango: Python 优点:简单、优雅、明确强大的第三方库易移植面向对象可扩展(CJavaC#.)Python缺点:代码不能加密速度慢Linux编译Python文件时,必须添加一句:#!/usr/bin/env pythonPython解释器:1、 Cpy

19、thon 官方标准2、 Ipython3、 Jython4、 PYPY5、 IronPython .net versionPython编程风格:语法要求: 缩进统一 变量 : 大写(常量) 小写(变量)Python数据类型按特征划分:1、 数字类型整型 布尔型(True False) 长整型 标准整形非整型 双精度浮点型 复数 decimal(不是內建数据类型)2、 序列类型 字符串(str) 元组 列表3、 映像类型 字典(dict)4、 集合类型可变集合 不可变集合Python注释单行注释:#多行注释 三引号理解字符编码:ASSIC码Unicode码UTF-8码(Python3 默认编码方

20、式)# _*_ coding:utf-8 _*_导入模块: Import 模块名 from模块名 import Import 模块名 as new用户交互:input() 输出的结果是字符串格式化输出:%s %d %f流程控制:if elif else Strip(去掉字符) split(切割 分割) len()while else文件处理的模式:rwa r b 尽量加bw bab File的方法: 方法:close() seek() 确定文件读写位置1. file.seek(off,whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了w

21、hence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。 tell() 回到文件当前位置 next() 迭代方法 = readline() truncate() 截断文件 writelines(列表、元组) 文件内容替换 属性:closed encoding mode name 1、文件写入12345678910111213141516171819202122import timeimport random#打开模式列表:#w 以写方式打开,#a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)#r+ 以读写模式打开#w+ 以读写模式打开

22、 (参见 w )#a+ 以读写模式打开 (参见 a )#rb 以二进制读模式打开#wb 以二进制写模式打开 (参见 w )#ab 以二进制追加模式打开 (参见 a )#rb+ 以二进制读写模式打开 (参见 r+ )#wb+ 以二进制读写模式打开 (参见 w+ )#ab+ 以二进制读写模式打开 (参见 a+ )f = open(tpm.txt, a+)for i in range(10) :f.write(time.strftime(%Y-%m-%d %H:%M:%S)f.write( + str(random.randint(0, i) + n)f.close()2、文件读取123456789

23、101112131415f = open(tpm.txt)# read方式读取s = f.read()print(s, nnn)print(f.tell()#上面读取完后指针移动到最后,通过seek将文件指针移动到文件头f.seek(0)#使用readline每次读取一行while(True):line = f.readline()print(line)if(len(line) = 0):breakf.close()3、文件目录操作(OS包)12345678910111213141516171819202122232425#os模块,处理文件和目录的一系列函数import os#打印当前目录下

24、的所有文件 非递归print(os.listdir(os.getcwd()#切换目录为当前目录os.chdir(.)#判断目标是否存在,不存在则创建if(os.path.exists(./osdirs) = False):os.mkdir(./osdirs)#重命名文件或目录名if(os.path.exists(./os) = False) :os.rename(./osdirs, ./os)#rmdir删除目录,需要先清空文件中的子目录或文件夹#removedirs可多层删除目录(需要目录中无文件) makedirs可多层创建目录if(os.path.isdir(./os) :os.rmdi

25、r(./os)#删除文件if(os.path.exists(./tpm.txt):os.remove(./tpm.txt)os模块中常用方法和属性:属性os.linesep 文件中分割行的字符串os.sep文件路径名的分隔符os.curdir当前工作目录的字符串名称os.pardir父目录字符串名称方法os.remove()删除文件os.rename()重命名文件os.walk()生成目录树下的所有文件名os.chdir()改变目录os.mkdir/makedirs创建目录/多层目录os.rmdir/removedirs删除目录/多层目录listdir()列出指定目录的文件getcwd()取得

26、当前工作目录(current work directory)chmod()改变目录权限os.path.basename()去掉目录路径,返回文件名os.path.dirname()去掉文件名,返回目录路径os.path.join()将分离的各部分组合成一个路径名os.path.split()返回(dirname(),basename()元组os.path.splitext()(返回filename,extension)元组os.path.getatimectimemtime分别返回最近访问、创建、修改时间os.path.getsize()返回文件大小os.path.exists()是否存在os

27、.path.isabs()是否为绝对路径os.path.isdir()是否为目录os.path.isfile()是否为文件4、文件目录操作(shutil包)1234567891011121314151617181920import osimport shutil#复制文件,相当于CP命令shutil.copy(start2.txt, start3)#移动文件或目录,相当于MV命令shutil.move(start3, start4)if(os.path.exists(./a/b/c) = False) :os.makedirs(./a/b/c)#删除目录shutil.rmtree(./a)if

28、(os.path.exists(./a/b/c/d) = False) :os.makedirs(./a/b/c/d)#复制目录if(os.path.exists(b) = False) :shutil.copytree(a, b)shutil中常用方法copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的copystat( src, dst) 复制权限、最后访问时间、最后修改时间copy

29、( src, dst) 复制一个文件到一个文件或一个目录copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp p的东西copy2( src, dst) 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作copytree(olddir,newdir,True/Flase) 把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接rmtree(path, igno

30、re_errors, onerror) 删除目录move( src, dst) 移动文件或目录5、应用 - 遍历文件夹12345678910import os#遍历当前路劲下的所有目录和文件夹#返回元组包含三个参数:1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字for root, dirs, files in os.walk(os.getcwd():#输出文件夹信息for dir in dirs:print(os.path.join(root,dir)#输出文件信息for file in files:print(os.path.join(root,file)6、总结Python的

31、文件操作和PHP类似,都有现成的函数去实现,所以基本上记住常用的函数就可以了。 字符串处理:S.find(子串,开始, 结束) S.rfind(子串,开始, 结束) S.index(子串,开始, 结束) ValueError S.rindex(子串,开始, 结束) S.count(子串,开始, 结束) 关系测试:测试两组数据的关系name_set = set1, 2, 3, 4模块写法加上一句;If _name_ = _main_: Pass函数式编程 原则一: 研发带来附加值的产品。 原则二: 研发基于最小成本原则。 原则三: 任何成功的软件产品都会面临重新开发。*args 可变参数列表 列

32、表传参*kargs 可变参数列表 字典传承 Pythons with statement provides a very convenient way of dealing with the situation where you have to do a setup and teardown to make something happen. A very good example for this is the situation where you want to gain a handler to a file, read data from the file and the clos

33、e the file handler. 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。 Without the with statement, one would write something along the lines of: 如果不用with语句,代码如下:123file = open(/tmp/foo.txt)data = file.read()file.close() There are two annoying things

34、 here. First, you end up forgetting to close the file handler. The second is how to handle exceptions that may occur once the file handler has been obtained. One could write something like this to get around this: 这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:12345file = open(/tmp/foo.txt)

35、try:data = file.read()finally:file.close()While this works well, it is unnecessarily verbose. This is where with is useful. The good thing about with apart from the better syntax is that it is very good handling exceptions. The above code would look like this, when using with: 虽然这段代码运行良好,但是太冗长了。这时候就

36、是with一展身手的时候了。除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常。下面是with版本的代码:12with open(/tmp/foo.txt) as file:data = file.read()with如何工作?while this might look like magic, the way Python handles with is more clever than magic. The basic idea is that the statement after with has to evaluate an object that responds to

37、 an _enter_() as well as an _exit_() function. 这看起来充满魔法,但不仅仅是魔法,Python对with的处理还很聪明。基本思想是with所求值的对象必须有一个_enter_()方法,一个_exit_()方法。 After the statement that follows with is evaluated, the _enter_() function on the resulting object is called. The value returned by this function is assigned to the variab

38、le following as. After every statement in the block is evaluated, the _exit_() function is called. 紧跟with后面的语句被求值后,返回对象的_enter_()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的_exit_()方法。 This can be demonstrated with the following example: 下面例子可以具体说明with如何工作:12345678910111213141516171819#

39、!/usr/bin/env python# with_example01.pyclass Sample:def _enter_(self):print In _enter_()return Foodef _exit_(self, type, value, trace):print In _exit_()def get_sample():return Sample()with get_sample() as sample:print sample:, sampleWhen executed, this will result in: 运行代码,输出如下1234bash-3.2$ ./with_example01.pyIn _enter_()sample: FooIn _exit_()As you can see, The _enter_() function is executed The value returned by it - in this case Foo is assigned to sample The body of the block is executed, thereby printing the value of sample ie. Foo The _

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(Python学习笔记报告.doc)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|