天天看点

Python的数值类型

问题:

1. Python数值有哪些?

2. 各类型的精度是多少?

3. 类型的转换是如何实现的?

5. 如何使用这些数据类型?需要注意什么?

6. 什么是不可变类型?

数值类型:

    整型: (不可变类型)

        标准整型:取值范围[-sys.maxint-1, sys.maxint]

        长整型:可表示无限大的整数,其值仅与你机器支持的(虚拟)内存大小有关

        数值超出标准整型范围将会转换为长整型。

        例如:

            1.定义标准整型

            >>> import sys

            >>> a = sys.maxint

            >>> a

            2147483647

            2.将a的值加1

            >>> a=sys.maxint+1

            2147483648L

    布尔型:(不可变类型)

        取值范围:True 和 False 分布对应整型的1和0

        对bool值区分大小写

            >>>a=true

            Traceback (most recent call last):

              File "<stdin>", line 1, in <module>

            NameError: name 'true' is not defined

    浮点型:

        类似c语言中的double,每个浮点型数值占8个字节(64位)

        精度:

            >>> sys.float_info

            sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.

            2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsi

            lon=2.220446049250313e-16, radix=2, rounds=1)

    复数:

        Python中关于复数的几个概念:

        1.虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数

        2.复数由实数部分和虚数部分构成

        3.表示复数的语法:real+imagej

        4.实数部分和虚数部分都是浮点数

        5.虚数部分必须有后缀j或J

类型转换:

    当我们在做运算时,如果两个操作数都是同一种数据类型,那就没必要进行类型转换,

仅当两个类型不一致的情况下,Python才会去检查一个操作数是否可以转换为另一类型的操作数。

    自动类型转换:

        无需编码解决转换问题。

        基本规则:

            将一个整型转换为浮点型,只需在整型后面加".0"

            将一个非复数转换为复数,只需在非复数后面加"0j"

    强制类型转换:coerce()

        coerce() Python内建函数用来实现强制类型转换

        示例:

            1.整型与浮点的转换

            >>> coerce(1,1.1)

            (1.0, 1.1)

            2.长整型与浮点的转换

            >>> coerce(123L,0.1)

            (123.0, 0.1)

            3.整数与长整数的转换

            >>> coerce(1,2L)

            (1L, 2L)

            4.整数与复数的转换

            >>> coerce(1,1+1j)

            ((1+0j), (1+1j))