python基础一

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

关于内存分配问题

新定义字符串变量默认新开辟一块新的内存空间其它类似有索引如列表,元组或是字典赋值时其实只是把变量名指向同一地址空间而已,如下所示1##字符串新定义则开辟新的一块内存空间2>>> str1 ='hoho'3>>> str2 =str14>>> id(str1),id(str2)#查看内存对象地址,观察内存地址,即str2新开辟了内存空间5(140297199501752, 140297199501752)#这里看到是一样的是由于python的一个内部机制导致的,如果字符串足够大的话就会是不一样的,不用纠结6>>> str2 ='heihei'7>>>str18'hoho'9>>>str210'heihei'11>>> id(str1),id(str2)#看,内存地址是不是变了12(140297199501752, 140297214622552)1314##非字符器,如列表,元组,字典赋值定义后其实只是把新的变量名(可以理解为标签)指向同一内存地址,以字典为例,如下所示15>>> dic1 = {'name':'hoho'}16>>> dic2 =dic117>>>id(dic1),id(dic2)18(140297199190088, 140297199190088)19>>> dic1 = {'name':'hoho'}20>>> dic2 =dic121>>> id(dic1),id(dic2)#查看内存对象地址,发现是一样的,故修改dic2事实上dic1也跟着修改了22(140297199191752, 140297199191752)23>>> dic2['name'] ='heihei'24>>>dic225{'name':'heihei'}26>>>dic127{'name':'heihei'}

列表,元组及字典的复制问题(浅复制与深复制copy模块的使用)

1、列表及元组可使用切片实现浅复制,也可使用copy模块使用浅复制(包括字典)

2、使用copy.deepcopy() 实例深复制

1>>>importcopy2>>> list1 = [1,2]3>>> list2 =list14>>> list2[0] = 2#list2改了,list1跟着变了5>>>list16[2, 2]7>>> list3 = list1[:]#浅复杂,利用数组切片做浅复制8>>> list3 =copy.copy(list1)9>>> id(list1),id(list2),id(list3)#这里就可看到地址空间是不一样的10(140297199250696, 140297199250696, 140297199247560)11>>>12>>> list4 = [1,[2]]##复杂结构必须用深复制13>>> list5 =list4[:]14>>>list515[1, [2]]16>>> list5[1][0] = 617>>>list418[1, [6]]#从这里可以看到内层的列表事实是没复制的,list4也跟着变了19>>> list6 = copy.deepcopy(list4)#这里使用深复制20>>> list6[1][0] = 821>>>list622[1, [8]]23>>>list424[1, [6]]#这里就可以看出已经复制的了

常用内置函数

python内置函数是非常多的,记住常用的就行了,但会知道怎么查看有哪些内置函数,函数的帮助

正常情况下分3步走

type(变量) ---> 得到变量的所属类dir(类名) --->查看类下都有哪些方法,其中类似 __abs__ 以双下划线开头的一般都有替代的方法 如: __abs__ <=> abs()help(类名或函数名) --->查看类下函数用法或是直接查看函数用法整形

1>>> s,y = divmod(7,3)## divmod 返回数据,值为(商,余数),可用于分页2>>>s,y3(2, 1)4>>> a = -25>>> abs(-2)#abs取绝对值627>>> len(str(-2))#取速度长度82

View Code

浮点

1>>> a = 7.02>>> divmod(a,3)3(2.0, 1.0)4>>> a = 7.2355>>> a.__round__(2)#四舍五入67.247>>> a.__trunc__()#取整87

View Code

字符串

1>>> str1 ='this is a string'2>>>'is'instr1#成员判断3True4>>> str1[1:3]#切片操作与索引5'hi'6>>> len(str1)#长度7168>>> str1.find('is')#查找字符串,返回索引值9210>>> str1.find('is',3,9)11512>>> str1.find('iss')#没有找到返回-1 ,如是index则会报错13-114>>> str1.index('is',3)15516>>> str1.index('iss')17Traceback (most recent call last):18File"", line 1,in19ValueError: substringnotfound20>>> str1 ='aaa'21>>>str1.strip()去空白,换行,回车22'aaa'23>>>str1.lstrip()24'aaa'25>>>str1.rstrip()26'aaa'27>>> str1 ='duiqi'#对齐操作28>>> str1.ljust(20)29'duiqi'30>>> str1.ljust(20,'*')31'duiqi***************'32>>> str1.rjust(20,'*')33'***************duiqi'34>>> str1.center(20,'*')35'*******duiqi********'36>>> str1 ='this is a string'37>>> str1.split()##分割操作38['this','is','a','string']39>>>str1.splitlines()40['this is a string']41>>> list1 = [1,2,3]42>>>'->'.join([str(i)foriinlist1])#连接操作43'1->2->3'44>>>str145'this is a string'46>>> str1.count('is')#计数47248>>> str1.replace('is','os')#替换49'thos os a string'50>>> str1.replace('is','os',1)#替换,只替换1个51'thos is a string'5253str1.startswith('sub')#以什么开头54str1.endswith('sub')#以什么结尾55str1.lower()#转为小写56str1.upper()#转为大写

View Code

列表与元组(元组不可修改)

1>>> lst1 = ['a']2>>> lst1.append('b')#新增3>>>lst14['a','b']5>>> lst2 = ['c','d']6>>> lst1.extend(lst2)#扩展新增7>>>lst18['a','b','c','d']9>>> lst1.insert(0,'z')#插入10>>>lst111['z','a','b','c','d']12>>> lst1.pop()#去除末尾13'd'14>>>lst115['z','a','b','c']16>>> lst1.remove('z')#删除指定元素17>>>lst118['a','b','c']19>>> lst1 = ['a','b','c','d']20>>> lst2 = lst1.copy()#浅复制python3才有21>>> lst2 =lst1.copy()22>>>lst223['a','b','c','d']24>>> lst2.clear()#清空列表25>>>lst226[]27>>>dellst2#删除列表28>>>lst129['d','c','b','a']30>>> lst1.sort()#排序31>>>lst132['a','b','c','d']33>>> lst1.append('a')34>>> lst1.count('a')#计数35236>>>lst137['a','b','c','d','a']38>>> len(lst1)#长度39540>>> lst1.index('a')#索引41042>>> lst1.index('a',1)#索引434

View Code

字典

1>>> dic1 = {'key1':'a','key2':'b'}2>>> dic1.get('key1')#取字典值,没取到默认返回None,也可指定3'a'4>>> dic1.get('key3')5>>>dic1.items()6dict_items([('key2','b'), ('key1','a')])#返回元组列表7>>>list(dic1.items())8[('key2','b'), ('key1','a')]9>>> dic1.keys()#返回keys列表10dict_keys(['key2','key1'])11>>> dic1.values()#返回值列表12dict_values(['b','a'])13>>> dic2 = dic1.copy()#浅复制14>>>dic215{'key2':'b','key1':'a'}16>>> dic1['key3'] ='c'#赋值(修改)17>>>dic118{'key2':'b','key1':'a','key3':'c'}19>>> dic1.pop('key1')#删除指定的key20'a'21>>>dic122{'key2':'b','key3':'c'}23>>> dic1.get('key1','a')#取值,没有返回'a'24'a'25>>>dic126{'key2':'b','key3':'c'}27>>> dic1.setdefault('key1','a')#设置默认(貌似没什么用)28'a'29>>>dic130{'key2':'b','key1':'a','key3':'c'}31>>> dic3 = {'name':'update'}32>>> dic1.update(dic3)#更新33>>>dic134{'key2':'b','name':'update','key1':'a','key3':'c'}35>>>deldic3#删除36>>>dic137{'key2':'b','name':'update','key1':'a','key3':'c'}38>>> len(dic1)#长度394

View Code

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航