获得更多资料欢迎进入我的网站或者 csdn或者博客园

本节主要介绍赋值语句,以及几种特殊的赋值。下面附有之前的文章;

python3入门之print,import,input介绍

python入门之字典

python入门之字符串

python入门之列表和元组

python入门之软件安装

简要介绍下赋值语句

在 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入门之赋值语句介绍的更多相关文章

  1. python3入门之print,import,input介绍

    本节主要介绍print,import和input,t函数,包括他们在python2.7和python3 的区别以及用法.下面附有之前的文章: ​ python3的print函数的变化 python3之 ...

  2. python3入门之类

    在面向对象的语言中,类是最重要的一环,python自然拥有类这个机制.python的类机制,与C++,java的区别不是很大,类的大多数的重要特性都被沿用了,一样可以多态,抽象,封装: python3 ...

  3. python3入门之集合set

    之前介绍python的数据结构时,没有介绍set(集合)现在在这里稍微介绍下: set原理 Python 还 包 含 了 一 个 数 据 类 型-- set ( 集 合 ) . 集 合 是 一 个 无 ...

  4. python3入门之函数

    相信大家学习过其他语言,懂得函数的作用.简单的说函数最好的作用就是可以使程序变得懒惰.python作为后起之秀,当然也会拥有函数这个有用的东西: 创建函数 使用def语句即可创建函数,如创建一个用来生 ...

  5. python3入门之字典

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍字典,字典也成映射,时python中唯一内建的映射类型.更多详细请点击readmore.下面附有之前的文章: python入门之字符串 ...

  6. python3入门之字符串

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 经过前面的介绍相信大家也对python有了一个初步的了解:本节主要介绍字符串,不管学习什么编语言字符串一定在其中扮演着重要的地位.本节主要讲解,字 ...

  7. python3入门之列表和元组

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 前面一张主要学习了Python的安装,以及第一个程序helloword的编写,以及简单的输入和输出函数,这章主要介绍序列,列表,元组 序列  这章 ...

  8. Python3入门之软件安装

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 最近将我的Python笔记整理下,希望能对他人有所帮助,这是第一课,安装入门篇: windows下安装Python 1.下载,从这里下载:[下载链 ...

  9. 全面系统Python3入门+进阶课程 ✌✌

    全面系统Python3入门+进阶课程 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 无论是大数据.人工智能还是机器学习,Python都是最热门的首选语言 ,这 ...

随机推荐

  1. 【HDU4967】Handling the Past

    题意 模拟栈操作.有三种操作push,pop,peak分别代表从栈顶压入元素,删除栈顶元素,查询栈顶元素.但是,每个操作会给出一个时间戳,要求操作必须要按照时间戳来进行.但是对于每个peak必须马上给 ...

  2. Nginx源码完全注释(8)ngx_errno.c

    errno.h中的strerror(int errno)可以确定指定的errno的错误的提示信息.在 Nginx 中,将所有错误提示信息预先存储在一个数组里,而预先确定这个数组的大小,是在自动化脚本中 ...

  3. OCFS2 Fencing

    OCFS2 FencingPosted on February 8, 2011 by Abdulhameed Basha I am very excited to start writing my e ...

  4. CloudStack 注册模板脚本分析

    注册系统虚拟机模板 /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt 内容如下: usage ...

  5. 二、SQL的生命周期

    MySQL的sql语句由客户端发出,经过连接和权限验证后,最终达到服务器端,由服务器分配thread线程处理,之后就是要介绍的具体服务器端的thread线程是怎么处理每条sql语句的.[ 了解thre ...

  6. Linux系统巡检常用命令-乾颐堂

    Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题.解决问题,降低损失,常用的巡检命令如下: # uname -a # 查看内核/操作系统/CPU信息 # ...

  7. cmake3.2.2 在Ubuntu14.04下的安装

    参考:http://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04 1.判断相关软件是否安装 sudo  ...

  8. axure & Markman学习总结

    最近学了几款有意思的软件,一款是axure,另一款是Markman.接下来聊聊自己的学习心得吧. 关于axure,百度上的解释是:是一个专业的快速原型设计工具.在我看来,它就是能快速把效果网页做给客户 ...

  9. Perl语言编程>>学习笔记

    1. 使用反引号可以调用外部程序并返回程序的输出, 如  $cwd = `pwd`; 2. Perl 中的变量类型之间的区别主要是单数和复数; 单数变量称为标量 $scalar , 复数变量称为数组 ...

  10. PLSA算法(转)

    文章分类:综合技术 1. 引子 Bag-of-Words 模型是NLP和IR领域中的一个基本假设.在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语 ...