zoukankan      html  css  js  c++  java
  • python笔记-数字类型

    一、数字类型

    python中常用数值类型为整型, 浮点型和复数类型.

    1. 整型
    2. 浮点型
    3. 复数类型
      • 复数包含实部和虚部,分别以一个浮点数表示。 要从一个复数 z 中提取这两个部分,可使用 z.realz.imag

    此外,布尔值属于整数的子类型。 整数具有无限的精度浮点数通常使用 C 中的 double 来实现

    数字是由数字字面值或内置函数与运算符的结果来创建的

    • 不带修饰的整数字面值(包括十六进制、八进制和二进制数)会生成整数
    • 包含小数点或幂运算符的数字字面值会生成浮点数
    • 数字字面值末尾加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚部的复数

    二、数字类型支持的运算

    1. x + y: 返回xy的和
    >>> 3.2 + 3
    6.2
    ``
    2. `x - y`: 返回`x`与`y`的差
    ```python
    >>> 3.2 - 3  # 浮点数运算时不精确的
    0.20000000000000018
    
    1. x * y: 返回xy的乘积
    >>> 3 * 2
    6
    >>> 3.1 * 3
    9.3
    
    1. x / y: 返回xy的商
    >>> 5 / 3
    1.6666666666666667
    >>> 9 / 3
    3.0
    
    1. x // y: 返回xy的商数
      • 也称为整数除法。 结果值是一个整数,但结果的类型不一定是 int
      • 运算结果总是向负无穷的方向舍入: 1//2 为 0, (-1)//2 为 -1, 1//(-2) 为 -1 而 (-1)//(-2) 为 0
    >>> 3 //2
    1
    >>> 3.2 // 3
    1.0
    ``
    6. `x % y`: 返回`x / y`的余数
          * 不可用于复数
    ```python
    >>> 17 % 4
    1
    
    1. -x: x取相反数
    >>> -10
    -10
    
    1. +x: x不变
    >>> x = -10
    >>> +x
    -10
    >>> -x
    10
    
    1. x ** y: xy次幂
      • Python 将 pow(0, 0) 和 0 ** 0 定义为 1,这是编程语言的普遍做法
    >>> 2 ** 3
    8
    >>> 0 ** 0
    1
    
    1. abs(x): 返回x的绝对值, 如果x为复数, 返回模长
    >>> abs(-10)
    10
    >>> abs(3 + 4j)
    5.0
    
    1. int(x): 将x转换为整数
      • 从浮点数转换为整数会被舍入或是像在 C 语言中一样被截断
      • 接受的数字字面值包括数码 09 或任何等效的 Unicode 字符(具有 Nd 特征属性的代码点)
    >>> int(2.3)
    2
    >>> int("2")
    2
    
    1. float(x): 将 x 转换为浮点数
      • float 也接受字符串 "nan" 和附带可选前缀 "+" 或 "-" 的 "inf" 分别表示非数字 (NaN) 以及正或负无穷
      • 接受的数字字面值包括数码 09 或任何等效的 Unicode 字符(具有 Nd 特征属性的代码点)
    >>> float(3)
    3.0
    >>> float("3.2")
    3.2
    >>> float("nan")
    nan
    >>> float("+inf")
    inf
    >>> float("-inf")
    -inf
    
    1. complex(re, im): 一个带有实部 re 和虚部 im 的复数。im 默认为0
      • 接受的数字字面值包括数码 0 到 9 或任何等效的 Unicode 字符(具有 Nd 特征属性的代码点)
    >>> complex(3, 4)
    (3+4j)
    >>> complex(2)
    (2+0j)
    >>> complex(3.3,2.1)
    (3.3+2.1j)
    
    1. c.conjugate(): 复数 c 的共轭复数
    >>> c = 3+4j
    >>> c.conjugate()
    (3-4j)
    
    1. divmod(x, y): 返回(x // y, x % y)
      • 不可用于复数。 而应在适当条件下使用 abs() 转换为浮点数
    >>> divmod(19, 5)
    (3, 4)
    
    1. pow(x, y): xy 次幂
      • Python 将 pow(0, 0) 和 0 ** 0 定义为 1,这是编程语言的普遍做法
    >>> pow(2,3)
    8
    
    1. math.trunc(x): x 截断为整数
    >>> math.trunc(3.14)
    3
    
    1. round(x, n): x舍入到n位小数,半数值会舍入到偶数。 如果省略n,则默认为 0
    >>> round(3.1415, 2)
    3.14
    >>> round(3.1415)
    3
    
    1. math.floor(x): <= x的最大整数
    >>> math.floor(3.11)
    3
    
    1. math.ceil(x): >= x的最小整数
    >>> math.ceil(3.4)
    4
    

    三、整数位运算

    • 按位运算只对整数有意义
    • 计算按位运算的结果,就相当于使用无穷多个二进制符号位对二的补码执行操作
    • 二进制按位运算的优先级全都低于数字运算,但又高于比较运算
    • 一元运算 ~ 具有与其他一元算术运算 (+ and -) 相同的优先级

    优先级升序排序

    1. x | y: xy 按位 或
    >>> bin(2)
    '0b10'
    >>> bin(5)
    '0b101'
    >>> 2 | 5
    7
    
    1. x ^ y: xy 按位 异或
    >>> bin(2)
    '0b10'
    >>> bin(5)
    '0b101'
    >>> 2 ^ 5
    7
    
    1. x & y: xy 按位 与
    >>> bin(2)
    '0b10'
    >>> bin(5)
    '0b101'
    >>> 2 & 5
    0
    
    1. x << n: x 左移 n
      • 负的移位数是非法的,会导致引发 ValueError
      • 左移n位等价于乘以pow(2, n)
    >>> x = 3
    >>> x << 2
    12
    >>> x * pow(2, 2)
    12
    
    1. x >> n: x 右移 n
      • 负的移位数是非法的,会导致引发 ValueError
      • 向右移动n位等价于按pow(2,n)进行整数除法。
    >>> x = 3
    >>> x >> 2
    0
    >>> x // pow(2, 2)
    0
    
    1. ~x: x 逐位取反
    >>> x =3
    >>> ~x
    -4
    
  • 相关阅读:
    团队项目-第一阶段冲刺2
    团队项目-第一阶段冲刺1
    第九周总结
    梦断代码阅读笔记02
    第八周总结
    团队会议个人领取任务
    梦断代码阅读笔记01
    Spring Boot 揭秘与实战(二) 数据缓存篇
    Spring Boot 揭秘与实战(二) 数据缓存篇
    Spring Boot 揭秘与实战(二) 数据缓存篇
  • 原文地址:https://www.cnblogs.com/duyupeng/p/13061468.html
Copyright © 2011-2022 走看看