python-day05

来源:互联网 发布:雨过天晴还原软件 编辑:程序博客网 时间:2024/05/18 03:08

一.python对内存的使用
python-copy
浅拷贝和深拷贝(对程序运算的速度的影响)
—所谓浅拷贝就是对引用的拷贝(只拷贝父对象)
—所谓深拷贝就是对对象的资源的拷贝
1.数值变量赋值
a和b是两个对象,指向同一个空间。改变一个,另一个也会改变

>>> a=[1,2,3,'a','c']>>> b=a>>> b[1, 2, 3, 'a', 'c']>>> a[1, 2, 3, 'a', 'c']>>> id(a)2239634233288>>> id(b)2239634233288#引用同一个对象>>> a.append('d')>>> a[1, 2, 3, 'a', 'c', 'd']>>> b [1, 2, 3, 'a', 'c', 'd']>>> b.append(4)>>> b[1, 2, 3, 'a', 'c', 'd', 4]>>> a[1, 2, 3, 'a', 'c', 'd', 4]

python中的深拷贝和浅拷贝
这里写图片描述

2.

—浅拷贝的内部数据的地址不变
如果改变内部数据的值,则两边都会变。原理如上图:

>>> import copy>>> a=[1,2,3,['a','b','c']]>>> b=a>>> c=copy.copy(a)>>> c[1, 2, 3, ['a', 'b', 'c']]>>> b[1, 2, 3, ['a', 'b', 'c']]>>> id(a)2165633013832>>> id(b)2165633013832>>> id(c)#c有自己独立的地址空间,所以c不会随着a的发改变而改变。(此处的父对象是不一样的,所以修改一个值,另一个值不会改变)2165633657800>>> a.append('d')>>> a[1, 2, 3, ['a', 'b', 'c'], 'd']>>> b[1, 2, 3, ['a', 'b', 'c'], 'd']>>> c[1, 2, 3, ['a', 'b', 'c']]>>> id(a[0])1854795568>>> id(b[0])1854795568>>> a[3].append('d')>>> a[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']>>> c[1, 2, 3, ['a', 'b', 'c', 'd']]>>> b[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']

深拷贝:彻底改变

>>> a[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']>>> d=copy.deepcopy(a)>>> a[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']>>> d[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']>>> id(a)2165633013832>>> id(d)2165633655432#此处不一样>>> id(a[0])1854795568>>> id(d[0])1854795568>>> id(a[3])2165633084680>>> id(d[3])#此处的内部元素不一样2165587065160>>> a.append('e')>>> a[1, 2, 3, ['a', 'b', 'c', 'd'], 'd', 'e']>>> d[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']>>> #此处不影响>>> a[3].append('x')>>> a[1, 2, 3, ['a', 'b', 'c', 'd', 'x'], 'd', 'e']>>> d[1, 2, 3, ['a', 'b', 'c', 'd'], 'd']

二.文件与目录

文件和目录文件的打开和创建文件的读取文件写入内容查找和替换文件删除,复制,重命名目录操作案列:-------目录分析器-------杀毒软件-------系统垃圾清理工具

1.文件的读写
——-python进行文件读写的函数:open函数或file(类)#(python3不可以用file打开文件)
——-file_handler=(open(filename,,mode))
这里写图片描述

>>> fo=open('G:/Python/workspace/day04/python.txt')>>> fo<_io.TextIOWrapper name='G:/Python/workspace/day04/python.txt' mode='r' encoding='cp936'>#表示读的方式>>> fo.read()#读'jiabbckjdbc\nskkdnckd\nmcdknckd'>>> fo.close()#关闭

r+的形式写入
有区别(先读出来,再写入和直接写入:两个操作写入的字符位置不一样)
前者放在文件中是文件的尾部,而后者是文件的首位置。
原因:文件中的数据read()

>>> f1=open('G:/Python/workspace/day04/python1.txt','r+')>>> f1.read()'hello \nin am new'>>> f1.write('sidbdid')7>>> f1.close()>>> f1=open('G:/Python/workspace/day04/python1.txt','r+')>>> f1.write('aaaaaaa')7>>> f1.close()

写入w
write()写入的是缓存,只有关闭才能写进文件中

>>> f1=open('G:/Python/workspace/day04/python1.txt','w')>>> f1.write('hello \nin am new')16>>> f1.close()
原创粉丝点击