python笔记1


开源中国社区介绍 

python很多实现,主流cpython 用c来实现,也可以jython ,利用jvm来处理。jython生成字节码给jvm实现。

UTF8 3个字节  gbk 2个字节

3.5循环输出汉字  --可以  --2.7不可以

enumerate   --enumerate(list,index=0)  返回一个对象   dict(enumerate(list))

深浅拷贝

python笔记1_第1张图片
深浅拷贝


从这就能看出来,就以列表为例,如果浅拷贝,那么系统就新建一个列表,它的每个元素都指向原来列表的每个元素(就像C语言里的指针数组),输出的时候就把它各元素指向的母体元素内容显示出来,所以list1追加了f元素以后list2并没有显示,因为list2里并没有指向这个新元素的元素。但是追加了x以后显示出来了,因为x属于list1的第三个元素的一部分,在list2有对应的指向,所以就显示出来了。对于深拷贝来说没有任何改变,因为深拷贝是新建一个列表,把原列表的内容原封不动拷过来,拷过来以后它和原列表一模一样,至于原列表后来做了什么改变根本不关它的事。形象理解就是浅拷贝是活的,深拷贝是死的。

---------------------------------------------------------------------------------

exec 执行字符串无返回值   eval 执行字符串,有返回值,不支持迭代  compile  编译字符串


python笔记1_第2张图片
实例

read()、readline()、readlines()

read()   --一次性读取 ,readline  --逐行读取   readlines--  逐行处理 --for line in f.readlines


seek()移动指针位置      tell()函数 目前指针  --文件处理   truncate(n):  从文件的首行首字符开始截断,截断文件为n个字符;无n表示从当前位置起截断;截断之后n后面的所有字符被删除。其中win下的换行代表2个字符大小。

python笔记1_第3张图片
技巧

装饰器 --  增强函数功能,在函数执行前后 执行其他的功能(代码运行期间动态增加功能的方式)

python笔记1_第4张图片
装饰器
python笔记1_第5张图片
嵌套装饰
python笔记1_第6张图片
如果加括号

总结     return不加括号返回内存地址,下面第二步加括号才是执行该内存地址的指令


##输入时候,内存数据,通过flush处理把内存数据刷到磁盘

python笔记1_第7张图片
读写操作在同一句柄需要调整游标tell()查看当前位置

格式化打印   

python笔记1_第8张图片
输出%

单行打印  \r

然而当执行print语句的时候,python会在打印完这个语句的同时在结尾加上’\n’,也就是换行,这就导致在控制台下一旦被print之后就无法再修改了。所以我们现在的输出就不能再使用print来完成了。我们要使用的是来自sys库的sys.stdout.write()函数,这个函数会在控制台输出这个字符串的同时不加上任何结尾,这就意味着这个输出还没有完全结束。通过sys.stdout.flush()函数可以把输出暂时打印在控制台中(造成print的假象,我们姑且先叫这个假输出)。那么如果我们使用’r’这个转义字符(回到行首)。

python笔记1_第9张图片
利用|\r实现单行打印

flush刷新内存

python笔记1_第10张图片
用法

python 汉字10进制

python笔记1_第11张图片
3.5   十进制输出汉字

pickle json   --  前者只针对python ,后者针对多语言的交互 

python笔记1_第12张图片
小总结

pickle+findall*+group()        *号默认贪婪   等价于{n}次  --未匹配到时需要反映的(相当于*为0)  ,最后会多一次                                                     ----------------------小总结

findall *    http://www.dataguru.cn/blog-4771-1048.html

json 模块   loads的字符串必须为双引号 ; load,loads区别

python笔记1_第13张图片
json技巧
python笔记1_第14张图片
此种处理不了
python笔记1_第15张图片
反引号

xml

python笔记1_第16张图片
xml
python笔记1_第17张图片
日志

反射  ---根据字符串求对象中操作成员

利用__import__导入函数           dd=__import__("lxml")   等价于  import lxml as dd

__import__(a.b.c) 如果 未设置fromlist  则返回a 如果设置为True则返回c   类似__import__(a.b.c,fromlist=True) 

getattr   getattr(urllib2,urlopen)      参数均为字符串  

多继承   --自己-左-右

python不支持重载(函数名相同,参数个数不同)  重写(派生类与基类相同的函数优先级不同

继承顺序

python笔记1_第18张图片
2.7 依次往上再往下
python笔记1_第19张图片
3.5 从派生到基类
python笔记1_第20张图片
多层函数,第二层函数(对象为原来子类)执行的目标










































你可能感兴趣的:(python笔记1)