天才领路者

终于理会python如何赋值

发布时间: 2019-08-25 12:22:41

赋值语句其实在例子中经常使用,其中包括对变量和一些数据结构的元素进行赋值;但是赋值方法不止这些,还有如序列解包、链式赋值和增量赋值等方法,那么python如何赋值呢?一起来了解下吧:   python如何赋值  

python如何赋值

  python的赋值,尤其是涉及到两个变量时候二者之间有某种计算关系的时候,可以省去临时变量。   比如C语言中的一段:   temp=n   n=n+m   m=temp   就可以在python中简单写作:   m,n=n,n+m   Python如何*最小赋值   码代码时,有时候需要根据比较大小分别赋值:   import random   seq = [random.randint(0, 1000) for _ in range(100)]   #方法1:   xmax, xmin = max(seq), min(seq)   #方法2:   xmax, *_, xmin = sorted(seq)   从上面这个来看,看不出来方法2的优势来,不过我们常用的是比较两个数的大小,并选取:   dx, dy = random.sample(seq, 2)   #方法1:   dx, dy = min(dx, dy), max(dx, dy)   #方法2:   dx, dy = sorted((dx, dy))   Python如何选择赋值   两个对象做比较有两种方式,分别是:is与 == ,is比较的是两个对象是否相同,通过对象的ID值可识别是否为相同对象,==比较的是两个对象的值是否相等。   x1 = [1,2,1]   x2 = [1,2,1]   print(x1 is x2)   print(x1 == x2)   print(id(x1))   print(id(x2))   False   True   2004573077256   2004573077448     上面我们对x1和x2进行赋值,相对于给两个变量分别取了名字x1和x2,两个名字虽然都是列表[1,2,1],但在内存中是两个独立的不同的对象,占据不同的内存空间,就好比两个名字一样的人,实则为两个不同的人。   x3 = x2   print(x2 is x3)   True   上面我们将x2对应的对象绑定了一个新的名字叫x3,这就好比一个人,开始给他取了一个x2的大名,后来又给他取了一个x3的小名,本质上还是同一个人,所以,x2和x3所指的其实是同一个对象。   通过x2修改对象时,x3也会跟着变化,因为本质上它们是同一个对象,这就好比一个人大名x2,小名x3,x2长了一岁相对于x3也长了一岁。   x2.append(2)   print(x2)   print(x3)   [1, 2, 1, 2]   [1, 2, 1, 2]   但是,当我们给x2重新赋值时,相当于x2不再引用之前的对象,而引用新对象,x3依然引用之前的对象。好比一个人的大名x2和小名x3,给x2重新赋值就相当于给另外一个人取大名x2,但是x3还是开始那个人的小名。   x2 = [3,4,3]   print(x2)   print(x3)   [3, 4, 3]   [1, 2, 1, 2]   python的赋值和赋址   python的数字和字符串的值是不变的(元祖也是不可变的),所以当一个变量(数字或字符串)进行值改变的操作时,其实是新开辟了一个地址来存放这个新值。    例如:   >>>a=2   >>>b=a   >>>a=3   >>>b   当执行a=3时,其实是新开辟了一块内存空间来存放3,并且把索引a从2那边解除,指向了存放3的内存地址。所以    a的值是3,但是b还是2。因为b依旧指向2所在的内存空间。   再来看看其他非数字和字符串的操作,例如列表,   >>>a=[2]   >>>b=a   >>>a.append(3)   >>>b   [2,3]   当执行a.append时,因为列表的值是可以变化的,所以就在原来的存放a的内存地址改变了a的值,由于a,b    是指向同一地址空间的索引,所以当此内存地址所存储的值被改变时,打印b时,b的值也变化了。  

更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 天才领路者网站详细了解
咨询电话:400-850-8622

相关文章

最新文章

相关课程

温馨提示:提交留言后老师会第一时间与您联系! 热线电话:400-850-8622