python2.x学习笔记(5)-数字

1. Python 支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数.

2. 数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的
对象。两次赋值给数字变量都会生成新的对象,也就id(var)不一样,但是对于整型,在一定范围内(-1至100)并不会生成新对象

3. 转换工厂函数
   函数 int(), long(), float() 和 complex() 用来将其它数值类型转换为相应的数值类型。从 Python 1.5 版本开始, 这些函数也接受字符串参数, 返回字符串所表示的数值。 Python从1.6 版开始,int() 和 long() 在转换字符串时,接受一个进制参数。如果是数字类型之间的转换,则这个进制参数不能使用。

4. 从 Python2.2 起, 有了第五个内建函数 bool()。它用来将整数值 1 和 0 转换为标准布尔值True 和 False. 从 Python2.3 开始, Python 的标准数据类型添加了一个新成员:布尔(Boolean)类型。从此 true 和 false 现在有了常量值即 True 和 False(不再是 1 和 0).

5.  数值工厂函数总结
类(工厂函数)                                  操作
bool(obj)                 返回obj对象的布尔值,也就是
                          obj.__nonzero__()方法的返回值
                          返回一个字符串或数值对象的整数表
                          示,  类似string.atoi();从Python 1.6起,
                          引入了可选的进制参数。

int(obj, base=10)         返回一个字符串或数值对象的整数表
                          示,  类似string.atoi();从Python 1.6起,
                          引入了可选的进制参数。

float(obj)                返回一个字符串或数据对象的浮点数
                          表示,类似string.atof()

complex(str) or           返回一个字符串的复数表示,或
complex(real, imag=0.0)   者根据给定的实数(及一个可选的虚数部分)
                          生成一个复数对象。


6. 数值运算内建函数
   abs(num): 返回num的绝对值
   coerce(num1,num2): 将num1,num2转换为同一类型,返回一个元组
   divmod(num1, num2):
   除法-取余运算的结合。返回一个元组(num1/num2,num1%num2)
   对浮点数和复数的商进行下舍入(复数仅取实数部分的商)
   pow(num1, num2, mod=1):
   取 num1 的 num2次方,如果提供 mod参数,则计算结果
   再对mod进行取余运算
   round(flt, ndig=0):
   接受一个浮点数flt并对其四舍五入,
   保存ndig位小数。若不提供ndig参数,则默认小数点后0位

7. 值得注意的是 round() 函数是按四舍五入的规则进行取整。也就是 round(0.5)得到 1,round(-0.5)得到-1。

8. 除了适应于所有数值类型的内建函数之外,Python 还提供一些仅适用于整数的内建函数(标准整数和长整数)。这些函数分为两类,一类用于进制转换,另一类用于 ASCII 转换。

9. 仅适用于整数的内建函数
   hex(num)     将数字转换成十六进制数并以字符串形式返回
   oct(num)     将数字转换成八进制数并以字符串形式返回
   chr(num)     将ASCII值的数字转换成ASCII字符,范围只能是0 <= num <= 255。
   ord(chr)    
   接受一个ASCII或Unicode字符(长度为1的字符串),
   返回相应的ASCII 或Unicode值。
   unichr(num)
   接受Unicode码值,返回  其对应的Unicode字符。所接受的码值范围依赖于
   你的Python是构建于UCS‐2还是UCS‐4。

10. 不能混用十进制浮点数和普通的浮点数。你可以通过字符串或其它十进制数创建十进制数浮点数。你必须导入 decimal 模块以便使用 Decimal 类:

11. 相关模块
  对高级的数字科学计算应用来说,
  你会对著名的第三方包 Numeric(NumPy) 和 SciPy 感兴趣
       
   decimal  十进制浮点运算类Decimal
   array    高效数值数组(字符,整数,浮点数等等)
   math/cmath
   标准C库数学运算函数。常规数学运算在match模块,复数运算在cmath模块
   operator
   数字运算符的函数实现。比如 tor.sub(m,n)等价于 m - n
   random    多种伪随机数生成器

你可能感兴趣的:(python)