• python之数字类型


    1. 支持类型

    python支持多种数字类型:整形,长整型,布尔型,双精度浮点型,十进制浮点型,复数
    注意:给数字对象重新赋值,实际上并没有更新该对象的原始数字(数字对象immutable),只是重新生成一个新的数值对象,并指向它。

     

    复数

    >>> aComplex = -3.1-4.2j
    >>> aComplex
    (-3.1-4.2j)
    >>> aComplex.real
    -3.1
    >>> aComplex.imag
    -4.2
    >>> aComplex.conjugate()
    (-3.1+4.2j)

    布尔型
    对于值为零的任何数字或空集(空列表、空元组和空字典等)在 Python 中的布尔值都是 False。

     

    2. 运算符

    加法
    python支持不同的数值类型相加,遵循转换规则:整数转为浮点数,非复数转为复数。
    数字类型间的转换是自动的,但可以通过 coerce() 内建函数来明确指定对某种数据进行特殊类型转换

    除法

    >>> 1 / 2
    0
    >>> 1.0 / 2.0
    0.5 # 传统除法
    >>> 1.0 // 2.0
    0.0 # 地板除
    >>> from __future__ import division # 导入真正除法
    >>> 1 / 2
    0.5

    位运算:取反(~),按位 与(&), 或(|) 及 异或(^) 及左移(<<)和右移(>>)

     

     

    3. 内建函数与工厂函数

    支持标准类型内建函数 cmp(), str() 和 type()

    数值类型函数

    转换工厂函数

    bool(obj)
    int(obj, base=10)
    long(obj, base=10)
    float(obj)
    complex(str) or complex(real, imag=0.0)

    >>> bool('hello')
    True
    >>> int('2015')
    2015
    >>> long(2015)
    2015L
    >>> float(2015)
    2015.0
    >>> complex(2015)
    (2015+0j)
    >>> complex(2015, 5)
    (2015+5j)

    功能函数

    abs(num)
    coerce(num1, num2)            将num1和num2转换为同一类型,然后返回一个tuple
    divmod(num1, num2)          返回一个tuple(num1/num2, num1%num2)
    pow(num1, num2, mod=1)   取num1的num2次方,如果提供mod参数,则再对mod进行取余运算
    round(fit, ndig=0)                接受浮点数并进行四舍五入,保留ndig位小数

    >>> abs(-1)
    1
    >>> abs(3+4j)
    5.0
    >>> coerce(1.5, 3)
    (1.5, 3.0)
    >>> coerce(3+4j, 5)
    ((3+4j), (5+0j))
    >>> divmod(10, 3)
    (3, 1)
    >>> divmod(10, 2.5)
    (4.0, 0.0)
    >>> divmod(3+4j, 1+2j)
    ((2+0j), (1+0j))
    >>> pow(2, 3)
    8
    >>> pow(3+4j, 2)
    (-7+24j)
    >>> round(2.4)
    2.0
    >>> round(-2.4)
    -2.0
    >>> round(-2.17, 1)

    仅用于整数(标准整数、长整数)的函数

    进制转换

    oct(): 转换为八进制,返回字符串
    hex(): 转换为十六进制,返回字符串
    >>> oct(8)
    '010'
    >>> hex(16)
    '0x10'

    ASCII转换

    >>> ord('a')
    97
    >>> chr(97)
    'a'

     

     

    2015-05-24

  • 相关阅读:
    3D集合图元:最小边界框/包围盒(boundingbox)
    vs2012下 error4996
    将自己的类封装为lib的方法
    3D特征:关于HFM和HBB
    C++的Matlab接口
    BigDataMini导论
    vs2012编译boost_1_54_0
    RGB_D_开发征程(使用Kinect)
    **PCD数据获取:Kinect+OpenNI+PCL对接(代码)
    PCL:全程详解 VS2010+PCL配置
  • 原文地址:https://www.cnblogs.com/whuyt/p/4526830.html
Copyright © 2020-2023  润新知