python基础一

Dec 16, 2016 pm 04:25 PM
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)!


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Quelles sont les bibliothèques Python populaires et leurs utilisations? Quelles sont les bibliothèques Python populaires et leurs utilisations? Mar 21, 2025 pm 06:46 PM

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

See all articles