python数字类型

发布时间:2019-08-11 11:27:38编辑:auto阅读(1313)

    在python中,数据采用了对象的形式(无论是python内置对象还是使用python工具和像C语言自行创建的对象)。

    Python数字类型工具:

    1. 整数和浮点数

    2. 复数

    3. 固定精度的十进制数

    4. 有理分数

    5. 集合

    6. 布尔类型

    7. 无穷的整数类型

    8. 各种数字内置函数和模块


    python数字类型在程序中的显示方式之一是作为常量(还有一个是调用模块使用函数):

    数字            常量

    12,-12      整数

    1.23            浮点数

    0o177,0x9ff,0b0000100 八进制、十六进制、二进制

    3+4j            复数


    内置数学工具和扩展:

    表达式操作符

            +-*/>>**&

    内置数学函数

            pow,abs,round,int等

    公共模块

            random,math等

    表达式是大多数数字类型的基本工具。


    在实际应用中的数字:

        变量和基本的表达式

    变量和对象不一样,无需声明

    变量在给它第一次赋值时创建

    变量在表达式中使用将被替换为他们的值

    变量在表达式中使用时需要先赋值,否则会报错。

    常用表达式1、简单加减乘除:

    >>> a=4

    >>> b=5

    >>> a+b,a-b

    (9, -1)

    >>> a*3,b/2

    (12, 2.5)

    >>> a%3,b**2

    (1, 25)

    >>> a<b

    True

    >>> a>b

    False

    >>> a==b

    False


    常用表达式二、除法:真除法、Floor除法

    x/y:在python3.0中是真除法,无论任何类型都会保留小数部分。

        >>> 5/1

        5.0

        >>> 9/3

        3.0

    x//y:截掉余数并针对数字类型保留类型

        >>> 5//3

        1

        >>> 9//2

        4

        >>> 5.0//3

        1.0

        >>> 5//2.0,5//-2.0

        (2.0, -3.0)

    整数精度,在python3.0中整数可以使用无穷的长度,只要内存足够大。


    常用表达式三、十六进制、八进制、二进制计数

        >>> 0o7,0o11,0o377

        (7, 9, 255)

        >>> 0x01,0xF,0xFF

        (1, 15, 255)

        >>> 0b1,0b1000,0b11111111

        (1, 8, 255)

        >>> oct(64),hex(64),bin(64) 将十进制转换为八进制、十六进制、二进制函数

        ('0o100', '0x40', '0b1000000')

        int函数将一个数字字符串变换成一个整数,第二个数字是指定的数字的进制。

        >>> int('64'),int('100',8),int('40',16),int('1000000',2)

        ( 64, 64, 64, 64)


    常用表达式四、复数

    >>> 2+2j

    (2+2j)

    以上介绍了核心数据类型:整数、浮点、复数,他们是通过常量表达式创建的,接下来介绍其他数据类型。

    1、小数数字,是通过导入模块调用函数后创建的,使用小数数字有固定的精度浮点值。

        >>> from decimal import Decimal

        >>> Decimal('0.2')+Decimal('0.01')

        Decimal('0.21')

        a、设置全局精度

             >>> import decimal

            >>> decimal.Decimal(1)/decimal.Decimal(7)

            Decimal('0.1428571428571428571428571429')

            >>> decimal.getcontext().prec=4                       #通过调用decimal模块的getcontext函数指定保留小数位数,来指定精度

            >>> decimal.Decimal(1)/decimal.Decimal(7)

            Decimal('0.1429')

        b、设置临时精度        

            >>> import decimal

            >>> decimal.Decimal('1.00')/decimal.Decimal('7.00')

            Decimal('0.1428571428571428571428571429')

            >>> with decimal.localcontext() as ctx:              #通过调用decimal模块的localcontext函数临时保留小数位数

            ...  ctx.prec=2

            ...  decimal.Decimal('1.00')/decimal.Decimal('7.00')

            ...

            Decimal('0.14')

            >>> decimal.Decimal(1)/decimal.Decimal(7)

            Decimal('0.1428571428571428571428571429')

      2、分数类型(fraction)

    类似小数数字,也是通过模块的导入后函数创建。

            >>> from fractions import Fraction

            >>> x=Fraction(1,4)

            >>> x

            Fraction(1, 4)

            >>> print(x)

            1/4

    也可以通过浮点数创建

            >>> Fraction(.25)

            Fraction(1, 4)

            >>> Fraction('.25')

            Fraction(1, 4)

    3、集合

    集合是无序的且不会将键匹配到值,既不是序列也不是映射类型。使用内置函数set来创建集合类型。

    注:一个项只能在集合中出现一次。最重要的一个使用原因。。

            >>> set('sspa')

            {'a', 's', 'p'}

    以下是创建集合的方式:

    通用方式       

             >>> x=set('abcde')

            >>> y=set('efghj')

            >>> x,y

            ({'e', 'b', 'd', 'c', 'a'}, {'j', 'f', 'h', 'e', 'g'})

            >>> x-y

            {'c', 'd', 'a', 'b'}

            >>> x|y

            {'j', 'f', 'h', 'e', 'b', 'd', 'g', 'c', 'a'}

            >>> x&y

            {'e'}

    3.0的添加方式:

            >>> set([1,2,3,4])

            {1, 2, 3, 4}

            >>> set(['spam'])

            {'spam'}

            >>> set('spam')

            {'m', 'a', 's', 'p'}

            >>> set()                    #空集合必须使用set创建

            set()

            >>>

    4、布尔型

    true和false

关键字