python里的数字类型包括:整数,浮点数,复数,fixed-precision 十进制数, rational fractional number, set, boolean, unlimited integer precision,
1.整数的位数可以无限制增长(内存允许的情况下);十六进制数以 0x或者0X开头;八进制数以0o或者0O开头;二进制以0b或者0B开头;hex(), oct() 和 bin()把十进制数转化成相应的进制数;int(str, base)把对应进制的字符串数转化为十进制(base默认为10);repr()或者str() 把任意类型的对象转化为字符串;
>>> int('0o100', 8)
64
>>> int(0o100)
64
>>> eval('64'), eval('0o100'), eval('0x40'), eval('0b1000000')
(64, 64, 64, 64)
eval()也可以进行进制转换;但它会把字符串当做代码来编译,运行。,因此比较慢
>>> '{0:o}, {1:x}, {2:b}'.format(64, 64, 64)
'100, 40, 1000000'
使用format转换。。
2. X//Y:返回整数或者 float(floor,整数部分是向下取整); X/Y会返回包含小数的结果
3. 一些运算符: or, and, not(逻辑运算); is, is not (identity test); in, not in(membership test); x if y else z(x is evaluated only if y is true); ×× (power)
4.比较运算符可以级联: 1 == 2 < 3 相当于 1 ==2 and 2 < 3; 1 < 2 < 3相当于 1 < 2 and 2 < 3
5. floor v.s. trunc:
import math
5//-2 = -3; math.trunc(5/-2) = -2 ;math.floor(5/-2) = -3
round(1.2) = 1 round(1.7) = 2 round(-1.8) = -2 round(-1.1) = -1
int(1.1) = 1 int(-1.7) = -1
6. set: 无序,不相同(unique),不可改变(immutable)的对象的集合,支持数学的集合理论操作;set本身可以增长或者减小,包含的对象类型可以各不相同;相当于一个没有value的 字典
>>> x = set('abcde')
>>> y = set('bdxyz')
>>> x – y
set(['a', 'c', 'e'])
>>> x & y
set(['b', 'd'])
>>> x > y
False
>>> z = x.intersection(y)
>>> q={1,2,3,4}
>>> q
{1, 2, 3, 4}
>>> type(q)
<class 'set'>
set comprehension:
>>> {x ** 2 for x in [1, 2, 3, 4]}
{16, 1, 4, 9}