Built_in(s)
1.Type and Classes
- bool, int, float, str, list, tuple, dict, set关键字的属性都是type
- set不能为空,{}内至少要有一个元素,比如{1}
- bool是int的子类,且不可以再子类化,bool < int < object。为什么bool是int的子类?因为一个bool是只可以取两个值的int,但它比实际的整数的运算/空间要少,bool型只有很少的存储空间。
所以可以用0表示false,非0的数表示true。同时bool支持数学运算。Python 2.x的时候True和False还没固定值,但到了Python 3.x的时候True已经default为1,False为0。
bool(0)
>>> False
bool(1.2) + bool(-1.2)
>>> 2
coding使用isinstance()作为判别条件的时候,要小心:
isinstance(True, bool) --> True
isinstance(False, bool) --> True
isinstance(True, int) --> True
isinstance(False, int) --> True
2.Literal Representation
- bool型false包括None和void,比如bool(None), bool({})
- int()类型转换浮点数时不是四舍五入,而是断尾,比如int(17.9) = 17。如果想实现四舍五入,可以使用int(x + 0.5),这样int(17.9+0.5) = 18, int(17.3+0.5) = 17
- 常见进制开头,二进制0b/B,八进制0o/O,十六进制0x/X
- 复数表达:complex([real[, imag]]),其中real可以是int, float, str,imag可以是int, float。如果real是str,则不能输入imag。取值实数部分在复数后面加.real,取值虚数部分在复数后面加.imag,注意无论实数和虚数位是int还是float型,取得的real和imag都是float型。
共轭复数在复数后面加.conjugate()
complex("2")
>>> 2+0j
complex("2+3j") #字符串中+前后不能有空格
>>>2+3j
complex(2.3, 2.3)
>>>2.3+2.3j
complex(1, 2).conjugate()
>>>1-2j
complex(1, 2.1).real
>>>1.0
complex(2.1, 2).imag
>>>2.0
Nonlocal. Nonlocal is similar in meaning to global. But it takes effect primarily in nested methods. It means "not a global or local variable." So it changes the identifier to refer to an enclosing method's variable.