第二阶段_学习笔记day11_06/23/19 (19 - 27)
1. is 和 ==
- ==:用来比较两个变量的值是否相等。
- is:用来比较两个变量是否相等。
- is判断的临界值:超过临界值之后,
a is b
返回的是False
[-5 256]:小整数池中的数值,全局共享同一份。list1 = [1, 2, 3]
list2 = [1, 2, 3]
list1 is list2
------> Falselist1[0] is list2[0]
----->True, 因为1在小整数池中
2. copy和deepcopy的使用
- 联系:复制出一个新的备份出来。
-
区别:对于普通对象没有区别。
如果目标对象是一个复合对象(一个对象的成员变量还是对象)的话,有区别。深复制是递归复制;浅复制,只复制直接对象。
3. 进制转换问题
- 十进制转其他进制:
-
bin()
:转换成二进制 -
oct()
:转换成八进制 -
hex()
:转换成十六进制
-
- 其他进制转换为十进制:
v1 = int('0o144' , 8)
:把八进制的数转换为十进制v2 = int('ob1100100', 2)
:把二进制的数转换为十进制v3 = int('0x64', 16)
:把十六进制的数转换为十进制 - 手算十进制转换其他进制:转几进制就除以几,直到0为止,倒着取余数。
- 手算其他进制转换到十进制:
4. 源码、反码、补码问题
https://blog.****.net/Hello_MyDream/article/details/82390005
5. 位运算符的使用
- <<: a << n 就相当于: a * 2^n
- >>: a >> n 就相当于:a // 2^n
- & 与:两个二进制的操作数,全为1,结果为1;其他情况,为0
- | 或:两个二进制的操作数,只要有一个为1,结果为1;都为0的时候,结果为0。
- ^ 异或:两个二进制的操作数,相同为0,不同为1。对同一个数字异或两次,能得到他本身。
- ~ 取反:
6. 属性私有化问题
-
_xx:
_PI = 3.14
在某个模块中,如果变量是 “ _xx ” 的形式,室友from import * 的方式,无法使用。 - __xx__私有属性/私有方法
名字重整:_类名__私有属性名
_类名__私有属性名 -
xx:主要用于方法
init; del; new; str:magic method
自定义方法避免与魔法方法崇明 - xx_:用来区分变量名/方法名
7. 使用property简化私有属性的访问方式;@property取代get和set方法
-
使用property简化私有属性的访问方式:
-
@property装饰器: