python3入门之赋值语句介绍
2015-08-04 09:55
393 查看
获得更多资料欢迎进入我的网站或者 csdn或者博客园
本节主要介绍赋值语句,以及几种特殊的赋值。下面附有之前的文章;简要介绍下赋值语句
在 python 中赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,而不是数据存储区域Python 没有「变量」,我们平时所说的变量其实只是「标签」,是引用。
执行
values=[‘a’,’b’,’c’]
的时候,Python 做的事情是首先创建一个列表对象[‘a’,’b’,’c’],然后给它贴上名为 values 的标签。如果随后又执行
values=[‘d’,’e’,’f’]
的话,Python 做的事情是创建另一个列表对象[‘d’,’e’,’f’],然后把刚才那张名为 values 的标签从前面的[‘a’,’b’,’c’] 对象上撕下来,重新贴到 [‘d’,’e’,’f’] 这个对象上。
直接赋值
语句格式:变量名称 = 对象>>> name='peace' >>> age=22 >>> print(name,age) peace 22 >>>
序列解包
序列解包又称递归解包,将多个值的序列解开放到变量的序列中>>> value=1,2,3 >>> value (1, 2, 3) >>> x,y,z=value >>> x 1 >>> y 2 >>> z 3 >>> ##交换变量的值可以直接进行 >>> x,y=y,x >>> x 2 >>> y 1 >>>
当函数返回的树序列时序列解包显得非常有用;比如如下:
#从字典中弹出任意一对儿键值对儿,并赋值给两个变量 >>> studentId={'peace':'201421014960','nick':'2014'} >>> key,value=studentId.popitem() >>> key 'nick' >>> value '2014' >>>
连续赋值
同时将一个变量赋值给多个变量;>>> peace=[1,2,3,4] >>> x=y=z=peace[2] >>> x 3 >>> y 3 >>> z 3 >>>
表达式赋值
包括以下表达式赋值:+=:将右侧的值加到变量上的和,然后再赋值给变量;
-=:将变量减去右侧的值得到的差,再赋值给变量;
/=:用变量除以右侧值得到的商,再赋值给变量;
%=:用变量取右侧值的余数,再赋值给变量;
>>> x=1 >>> x+=2 >>> x 3 >>> x*=2 >>> x 6 >>> x-=3 >>> x 3 >>> x/=3 >>> x 1.0 >>> x*=5 >>> x 5.0 >>> x%=3 >>> x 2.0 >>>
引用和拷贝
浅复制:
主要的浅复制方法:(1)没有限制条件的分片表达式(L[:])能够复制序列,但此法只能浅层复制。
(2)字典 copy 方法,D.copy() 能够复制字典,但此法只能浅层复制
对于不可变对象和可变对象来说,浅复制都是复制的引用,只是因为复制不变对象和复制不变对象的引用是等效的(因为对象不可变,当改变时会新建对象重新赋值)。所以看起来浅复制只复制不可变对象(整数,实数,字符串等),对于可变对象,浅复制其实是创建了一个对于该对象的引用,也就是说只是给同一个对象贴上了另一个标签而已。
#直接赋值的浅复制 >>> a=[1,2,3] >>> b=a >>> b[1]=1 >>> b [1, 1, 3] >>> a [1, 1, 3] >>> ##L[:] >>> a=[1,[2,3],3] >>> b=a[:] >>> a[0]=2 >>> a[1][1]=8 >>> a [2, [2, 8], 3] #b的第二个元素跟着改变了 >>> b [1, [2, 8], 3] >>>
深度复制(拷贝)
主要的方法:有些内置函数,例如 list,能够生成拷贝 list(L)
copy 标准库模块能够生成完整拷贝:deepcopy 本质上是递归 copy
>>> import copy >>> a=[1,[2,3],3] >>> b=copy.deepcopy(a) >>> a[0]=2 >>> a[1][1]=8 >>> a [2, [2, 8], 3] >>> b [1, [2, 3], 3] >>>
这里对引用和拷贝只是简单的介绍,后面讲到对象会继续深究
相关链接:
python3入门之类python3入门之函数
python3入门之循环
python3之if语句
python3入门之赋值语句介绍
python3入门之print,import,input介绍
python3入门之set
python3入门之字典
python3入门之字符串
python3入门之列表和元组
python3入门之软件安装
python3爬虫之入门和正则表达式
相关文章推荐
- python3入门之赋值语句介绍
- python处理JSON字符串
- python3入门之几个函数变化
- Python 学习 字符串
- python利用datetime模块计算时间差
- 10款好用的 Python IDE总结与推荐
- 使用python加密自己的密码
- Python实现字典的key和values的交换
- python调试
- python利用装饰器进行运算的实例分析
- 浅谈python多线程和队列管理shell程序
- 将python3.1+pyqt4打包成exe
- Python闭包
- 浅谈python多线程和队列管理shell程序
- python利用装饰器进行运算的实例分析
- Python实现字典的key和values的交换
- 使用python加密自己的密码
- python利用datetime模块计算时间差
- 合并百度影音的离线数据( with python 2.3)
- Python利用ansible分发处理任务