Python的==与is,深拷贝与浅拷贝,进值转换

id()返回的是变量的内存地址

==只是判断两个变量的值是否相等

is则判断的是否指向同一内存空间

=的作用是将左边变量指向右边变量的内存空间,即引用

 

浅拷贝只是将变量指向同一内存空间

import copy

c = copy.deepcopy(a)使用深拷贝,创建新的空间并使用a的值初始化。

假如是列表中元素也是列表,那么深拷贝会递归创建空间,所有元素都是新的内存空间。

对于不可变类型(数字,元组,不可变)copy()只是赋值,第一层也不深拷贝。

对于可变类型copy()会深拷贝第一层。

 

+1 = 0000 0000 0000 0001

-1 = 1000 0000 0000 0001

-1+1 = 1000 0000 0000 0010

因此出现了原码,反码,补码,数字在计算机采用的二进制补码来表示。

正数的原码=反码=补码 

负数的反码=原码的符号位不变其他位取反 

负数的补码=反码+1

-1的补码 = 1111 1111 1111 1111

+1的补码 = 0000 0000 0000 0001

因此-1+1 = 0

十进制->八进制oct()  十进制->二进制bin()   十进制->十六进制hex()

posted @ 2017-10-21 19:02  我为Xin媛学Python  阅读(149)  评论(0)    收藏  举报