数字

数字

数字提供了标量贮存和直接访问。它是不可更改类型。

数字对象操作

# !/usr/bin/python
# -*- coding: utf-8 -*-
# __author__:  reworld

if __name__ == "__main__":
    """数字对象"""
    # 创建数字对象
    anInt = 1
    aLong = -55L  # 注意用大写L
    aFloat = 3.1415
    aComplex = 1.23 + 4.56j
    # 更新数字对象
    anInt += 1
    # 删除数字对象
    del anInt

repr()函数有机会看到"L",str()函数看不到"L"

复数

  • 虚数不能单独存在,它总是和一个值为0.0的实数部分一起构成一个复数
  • 复数由实数部分和虚数部分构成
  • 表示虚数的语法:real+imagj
  • 实数部分和虚数部分都是浮点型
  • 虚数部分必须有后缀j或J
num.real # 实部
num.imag # 虚部
num.conjugate() # 返回该复数的共轭复数

混合模式操作符

coerce()

  • 如果有一个操作数是复数,另一个操作数被转换为复数
  • 否则,如果有一个操作数是浮点型,另一个操作数被转换为长整型
  • 否则,如果有一个操作数是长整型,则另一个操作数被转换为长整型
  • 否则,两者必然都是普通类型,无须类型转换
# __author__:  reworld
# from __future__ import division

if __name__ == "__main__":
    # 现阶段地板除 未来移除
    print(1 / 2)  # 0  __future__  0.5
    print( 1 / 2.0) # 0.5
    # // 执行地板除  返回比真正商小的最小整数
    print( 1 // 2)  # 0
    print( -1 // 2)  # -1

    print( 1.0 % 3)
    # 浮点数的取余  x - (math.floor(x/y) * y)
    print( 4.8 % 3.2)

数值类型转换

操作符优先级

从上至下,计算优先级依次降低

操作符优先级

    # 优先级 **
    print(-3 ** 2)
    print((-3) ** 2)
    print(4**-1)

    print(-1-2) # -3
    print(0+1j**2) # -1+0j
    print(1+1j**2) # 0j
    print((1+1j)**2) # 2j

位操作符(只适用于整型)

用于计算存储单位

整型位操作符

数值工厂函数

bool(obj) int(obj) long(obj) float(obj) complex(str)

功能函数

# !/usr/bin/python
# -*- coding: utf-8 -*-
# __author__:  reworld

if __name__ == "__main__":

    # 取绝对值
    print(abs(-1))
    print(abs(-1+1.0j))
    # 1
    # 1.41421356237

    # 自定义两个数值类型转换
    print(coerce(1,2))
    print(coerce(1.3, 13L))
    print(coerce(1,134L))
    print(coerce(1j,134L))
    # (1, 2)
    # (1.3, 13.0)
    # (1L, 134L)
    # (1j, (134 + 0j))

    # divmod()  返回包含商和余数的元组
    print(divmod(1,3))
    print(divmod(10,3))
    print(divmod(2.5,10))
    print(divmod(2+1j,0.5-1j))
    # (0, 1)
    # (3, 1)
    # (0.0, 2.5)
    # ((-0 + 0j), (2 + 1j))

    # pow() pow(x,y,z) 密码 做取余运算
    #     With two arguments, equivalent to x**y.  With three arguments,
    #     equivalent to (x**y) % z, but may be more efficient (e.g. for longs).
    print(pow(5,2,4))  # 1
    
    # round() 四舍五入 第二个参数精确位数
    print(round(3.4999,1))
    # 3.5
    print(round(-3.5)) # -4.0
    print(round(-3.4)) # -3.0
    
    
  • int()直接截去小数部分,返回整型
  • floor() 最接近原数但小于原数的整型 返回值为浮点型
  • round() 最接近原数的整型 返回值为浮点型

仅适用整型的内建函数

hex 数字转16进制

oct 数字转8进制

chr ASCII值转为ASCII字符

ord 接受一个ASCII或unicode字符(长度为1字符串),返回相应的ASCII或unicode值

相关模块

decimal 十进制浮点运算符

array 高效数值数组(字符,整型、浮点型等)

math/cmath 常规数学运算在math模块,复数cmath模块

operator 数字操作符的函数实现

random 多种随机数生成器

常用random

randint() 两个整型参数,返回两者之间的随机整型

randrange() 同range()参数,随机返回range(start,stop,step)其中一项

uniform() 类似randint(),返回二者之间的浮点型(不含范围上限)

random() 类似于uniform, 下限恒等于0,上限恒等于1

choice() 随机返回给定序列的一个元素