python正确的赋值语句是_python3入门之赋值语句介绍

获得更多资料欢迎进入我的网站或者 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]

>>>

这里对引用和拷贝只是简单的介绍,后面讲到对象会继续深究

相关链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值