python数字类型

2023-01-31 01:01:32 python 类型 数字

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

相关文章