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爬虫之入门和正则表达式

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/onepeace/p/4701147.html
Copyright © 2011-2022 走看看