python基础一
关于内存分配问题
新定义字符串变量默认新开辟一块新的内存空间
其它类似有索引如列表,元组或是字典赋值时其实只是把变量名指向同一地址空间而已,如下所示
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)!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Fastapi ...
