关于内存分配问题
新定义字符串变量默认新开辟一块新的内存空间
其它类似有索引如列表,元组或是字典赋值时其实只是把变量名指向同一地址空间而已,如下所示
1 ##字符串新定义则开辟新的一块内存空间 2 >>> str1 = 'hoho' 3 >>> str2 = str1 4 >>> id(str1),id(str2) #查看内存对象地址,观察内存地址,即str2新开辟了内存空间 5 (140297199501752, 140297199501752) #这里看到是一样的是由于python的一个内部机制导致的,如果字符串足够大的话就会是不一样的,不用纠结 6 >>> str2 = 'heihei' 7 >>> str1 8 'hoho' 9 >>> str210 'heihei'11 >>> id(str1),id(str2) #看,内存地址是不是变了12 (140297199501752, 140297214622552) 13 14 ##非字符器,如列表,元组,字典赋值定义后其实只是把新的变量名(可以理解为标签)指向同一内存地址,以字典为例,如下所示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 >>> import copy 2 >>> list1 = [1,2] 3 >>> list2 = list1 4 >>> list2[0] = 2 #list2改了,list1跟着变了 5 >>> list1 6 [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取绝对值6 27 >>> len(str(-2)) #取速度长度8 2
View Code
浮点
1 >>> a = 7.02 >>> divmod(a,3)3 (2.0, 1.0)4 >>> a = 7.2355 >>> a.__round__(2) #四舍五入6 7.247 >>> a.__trunc__() #取整8 7
View Code
字符串
1 >>> str1 = 'this is a string' 2 >>> 'is' in str1 #成员判断 3 True 4 >>> str1[1:3] # 切片操作与索引 5 'hi' 6 >>> len(str1) #长度 7 16 8 >>> str1.find('is') #查找字符串,返回索引值 9 210 >>> str1.find('is',3,9)11 512 >>> str1.find('iss') #没有找到返回-1 ,如是index则会报错13 -114 >>> str1.index('is',3)15 516 >>> str1.index('iss')17 Traceback (most recent call last):18 File "", line 1, in 19 ValueError: substring not found20 >>> 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) for i in list1]) #连接操作43 '1->2->3'44 >>> str145 'this is a string'46 >>> str1.count('is') #计数47 248 >>> str1.replace('is','os') #替换49 'thos os a string'50 >>> str1.replace('is','os',1) #替换,只替换1个51 'thos is a string'52 53 str1.startswith('sub') #以什么开头54 str1.endswith('sub') #以什么结尾55 str1.lower() #转为小写56 str1.upper() #转为大写
View Code
列表与元组(元组不可修改)
1 >>> lst1 = ['a'] 2 >>> lst1.append('b') #新增 3 >>> lst1 4 ['a', 'b'] 5 >>> lst2 = ['c','d'] 6 >>> lst1.extend(lst2) #扩展新增 7 >>> lst1 8 ['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 >>> del lst2 #删除列表28 >>> lst129 ['d', 'c', 'b', 'a']30 >>> lst1.sort() #排序31 >>> lst132 ['a', 'b', 'c', 'd']33 >>> lst1.append('a')34 >>> lst1.count('a') #计数35 236 >>> lst137 ['a', 'b', 'c', 'd', 'a']38 >>> len(lst1) #长度39 540 >>> lst1.index('a') #索引41 042 >>> lst1.index('a',1) #索引43 4
View Code
字典
1 >>> dic1 = {'key1' : 'a','key2' : 'b'} 2 >>> dic1.get('key1') #取字典值,没取到默认返回None,也可指定 3 'a' 4 >>> dic1.get('key3') 5 >>> dic1.items() 6 dict_items([('key2', 'b'), ('key1', 'a')]) #返回元组列表 7 >>> list(dic1.items()) 8 [('key2', 'b'), ('key1', 'a')] 9 >>> dic1.keys() #返回keys列表10 dict_keys(['key2', 'key1'])11 >>> dic1.values() #返回值列表12 dict_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 >>> dic1 34 {'key2': 'b', 'name': 'update', 'key1': 'a', 'key3': 'c'}35 >>> del dic3 #删除36 >>> dic137 {'key2': 'b', 'name': 'update', 'key1': 'a', 'key3': 'c'}38 >>> len(dic1) #长度39 4
View Code
以上就是python基础一的内容,更多相关文章请关注PHP中文网(www.php.cn)!

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具