• Python内置类型(4)--数值


     

    Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers)。此外,布尔是整数的子类型。

    数值类型说明

    整数由1-n个数字字符表示,整数的类型名称是int,所有的整数都是类型int的实例;浮点数由整数部分和小数部分构成,中间用.连接,浮点数的类型名称是float,所有浮点数都是类型float的实例;复数由实部和虚部构成,其中虚部跟上字母j,复数的类型名称数complex,所有复数都是类型complex的实例。

    数值的声明

    在python中,数值声明的方式有2种方式,分别是字面量声明方式和使用数值类型构造函数初始化的方式。

    字面量

    和其它语言类似,python支持字面量方式声明数值。

    对于整数,一串数字就表示1个正整数,负数则在数字前面添加-号表示,

    # 正数
    >>> 19 
    19
    # 负数
    >>> -7
    -7
    # 0
    >>> 0
    0
    

    浮点数的字面量声明,负数同样的是前面添加-号来表示,

    # 正浮点数
    >>> 19.1
    19.1
    # 负浮点数
    >>> -7.2
    -7.2
    # 0.0
    >>> 0.0
    0.0
    

    复数的字面量声明,虚部用字母j(或者J)表示

    >>> 1 + 2j
    1 + 2j
    

    整数默认的是按10进制进行表示的,但是字面量也可以直接声明2进制、8进制和16进制,它们分别是向整数添加0b0o0x表示。

    # 2进制
    >>> a = 0b10
    >>> a
    2
    # 8进制
    >>> b = 0o10
    >>> b
    8
    # 16进制
    >>> c = 0x10
    >>> c
    16
    

    构造函数声明

    int函数是1个python内置函数,也是整数类型int的构造函数,它的作用是对传入的参数做初始化,转换成1个整数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数33——int。

    # 1. 不传入参数时,得到结果0
    >>> int()
    0
    
    #2. 传入整数时,返回本身;传入浮点数时,向下取整
    >>> int(3)
    3
    >>> int(3.6)
    3
    
    # 3. 传入字符串时,默认以10进制进行转换,字符串中可以带正负符号。
    >>> int('+36')
    36
    >>> int('-36')
    -36
    
    # 4. 传入字符串时,并指定转换进制。
    >>> int('01',2)
    1
    >>> int('02',3)
    2
    >>> int('07',8)
    7
    >>> int('0f',16)
    15
    

    float函数是1个python内置函数,也是浮点数类型float的构造函数,它的作用是对传入的参数做初始化,转换成1个浮点数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数22——float。

    # 1. 不传入参数时,得到结果0.0
    >>> float()
    0.0
    
    #2. 传入整数或者浮点数
    >>> float(3)
    3.0
    >>> float(3.6)
    3.6
    
    # 3. 传入字符串时,字符串中可以带正负符号。
    >>> float('+3.6')
    3.6
    >>> float('-3.6')
    -3.6
    
    # 4. 几个特殊的字符串
    >>> float('Infinity')#无穷大
    inf
    >>> float('inf')#无穷大
    inf
    
    >>> float('inFinIty') #不区分大小写
    inf
    
    >>> float('+inFinIty') #正无穷
    inf
    >>> float('-inFinIty') #负无穷
    -inf
    
    >>> float('nan') #没有值
    nan
    

    complex函数是1个python内置函数,也是复数类型complex的构造函数,它的作用是对传入的参数做初始化,转换成1个复数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数13——complex。

    # 1. 不传入参数时,得到结果0j
    >>> complex()
    0j
    
    #2. 传入2个参数,分别表示实部和虚部
    >>> complex(3,4)
    (3 + 4j)
    
    # 3. 传入字符串时
    >>> complex('3+4j')
    3.6
    >>> complex('-3.6')
    (3 + 4j)
    

    支持的运算操作

    常见的运算操作

    整形支持以下的运算操作,按优先级升序排列

    • x + y 相加
    • x - y 相减
    • x * y 相乘
    • x / y 相除
    • x // y 取整除,也叫地板除
    • x % y 取余数
    • -x 取负
    • +x 取正,值不变
    • abs(x) 取绝对值
    • int(x) 转换成整数
    • float(x) 转换成浮点数
    • complex(re,im) 转换成复数
    • c.conjugate() 取复数的共轭
    • divmod(x, y) 返回地板除的结果和取余数的结果组成的元组
    • pow(x,y) x 的y 次幂
    • x ** y x 的y 次幂

    其中x // y只支持浮点数和整数,不支持复数,除法结果向下取整。

    >>> 1//2
    0
    >>> -1//2
    -1
    >>> 1//(-2)
    -1
    >>> (-1)//(-2)
    0
    
    # 其中1个是浮点数 结果也是浮点数
    >>> 5//3
    1
    >>> 5//3.0
    1.0
    

    浮点数的四舍五入

    python提供了内置函数float用来对浮点数进行四舍五入操作。其中有一点一定要注意,float如果不传入第2个参数,表示截断成整数。和传入0保留0位小数是不一样的。

    >>> round(3.456,2)
    3.46
    >>> round(3.456,1)
    3.5
    >>> round(3.456,0)
    3.0
    >>> round(3.456) #不传入参数,结果是整数
    3
    

    浮点数转换成整数的几个截断方法

    math模块中,提供了另外几种将浮点数截断成小数的方法,他们分别是trunc截断、floor向下取整、ceil向上取整。而上面提到的round函数,如果不传入第2个参数,也有取整的功能。

    # 导入math
    import math
    
    >>> a = 3.556
    >>> b = -3.556
    
    # 直接截断
    >>> math.trunc(a)
    3
    >>> math.trunc(b)
    -3
    
    # 向下取整
    >>> math.floor(a)
    3
    >>> math.floor(b)
    -4
    
    # 向上取整
    >>> math.ceil(a)
    4
    >>> math.ceil(b)
    -3
    
    # 四舍五入取整
    >>> round(a)
    4
    >>> round(b)
    -4
    

    浮点数的is_integer()方法

    is_integer()是浮动数的一个实例方法,
    如果浮点数实例是整数值,则返回True,否则返回False.

    >>> f1 = 3.0
    >>> f1.is_integer()
    True
    
    >>> f2 = 3.14
    >>> f2.is_integer()
    False
    
  • 相关阅读:
    Hibernate中日期(Date)类型 与oracle中日期的映射处理
    mssql注入经常使用的命令
    EL表达式遍历Map集合
    TomCat项目空间映射 配置
    JSP探针虚拟主机JSP环境检测工具
    什么是RSS
    大U盘容量的烦恼:copy 4G 以上单个文件时总是显示U盘已满
    Java初体验之bool
    何为Cookie
    转测试网站各项性能的31 个免费在线工具
  • 原文地址:https://www.cnblogs.com/sesshoumaru/p/python-numbers.html
Copyright © 2020-2023  润新知