zoukankan      html  css  js  c++  java
  • python3入门之赋值语句介绍

    获得更多资料欢迎进入我的网站或者 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爬虫之入门和正则表达式

  • 相关阅读:
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    软件工程基础大作业感想
    博客园里留下你的成长足迹
    软件工程培训—粗读《构建之法》
  • 原文地址:https://www.cnblogs.com/onepeace/p/4701147.html
Copyright © 2011-2022 走看看