zoukankan      html  css  js  c++  java
  • 016 数字类型及操作

    一、概述

    • 整数类型
    • 浮点数类型
    • 复数类型
    • 数值运算操作符
    • 数值运算函数

    二、整数类型

    与数学中整数的概念一致

    • 可正可负,没有取值范围限制
    • pow(x,y)函数:计算 xyxy ,想算多大算多大
    pow(2, 10)  # 1024
    pow(2, pow(2, 5))  # 4294967296
    

    2.1 4种进制表示形式

    • 十进制:1010, 99, -217
    • 二进制,以0b或0B开头:0b010, -0B101
    • 八进制,以0o或0O开头:0o123, -0O456
    • 十六进制,以0x或0X开头:0x9a, -0X89

    关于Python整数,就需要知道这些:

    • 整数无限制 pow()
    • 4种进制表示形式

    三、浮点数类型

    与数学中实数的概念一致

    • 带有小数点及小数的数字
    • 浮点数取值范围和小数精度都存在限制,但常规计算可忽略
    • 取值范围数量级约10308−10308 1030810308 ,精度数量级101610−16

    浮点数间运算存在不确定尾数,不是bug

    0.1 + 0.3  # 0.4
    0.1 + 0.2  # 0.30000000000000004
    
    • 0.1:53位二进制表示小数部分,约101610−16
      • 0.00011001100110011001100110011001100110011001100110011010 (二进制表示)
      • 0.1000000000000000055511151231257827021181583404541015625 (十进制表示)

    二进制表示小数,可以无限接近,但不完全相同

    0.1 + 0.2:结果无限接近0.3,但可能存在尾数

    0.1 + 0.2 == 0.3  # False
    
    round(0.1+0.2, 1) == 0.3  # True
    

    3.1 round()函数

    • round(x, d):对x四舍五入,d是小数截取位数
    • 浮点数间运算及比较用round()函数辅助
    • 不确定尾数一般发生在10161016 左右,round()

    3.2 科学计数法表示浮点数

    • 使用字母e或E作为幂的符号,以10为基数,格式如下:<a>e<b>,表示 a*10b
    • 例如:4.3e-3 值为0.00439.6E5 值为 960000.0

    关于Python浮点数,需要知道多些。

    • 取值范围和精度基本无限制
    • 运算存在不确定尾数 round()
    • 科学计数法表示

    四、复数类型

    与数学中复数的概念一致

    如果x2x2 = -1,那么x的值什么?

    • 定义 j = −1 ,以此为基础,构建数学体系
    • a+bj 被称为复数,其中,a是实部,b是虚部

    4.1 复数实例

    z = 1.23e-4+5.6e+89j

    • 实部是什么?z.real 获得实部
    • 虚部是什么?z.imag 获得虚部

    五、数值运算操作符

    5.1 一元操作符

    操作符是完成运算的一种符号体系

    操作符及使用描述
    x+y 加,x与y之和
    x-y 减,x与y之差
    x*y 乘,x与y之积
    x / y 除,x与y之商 10/3 结果是3.3333333333333335
    x // y 整数除,x与y之整数商 10//3 结果是3
    + x x本身
    - y x的负值
    x % y 余数,模运算,10%3 结果是1
    x ** y 幂运算,x的y次幂,xyxy ,当y是小数时,开放运算,10**0.5结果是1010

    5.2 二元操作符

    二元操作符有对应的增强赋值操作符

    增强操作符及使用描述
    x op= y x = x op y,其中,op为二元操作符

    二元操作符有以下这些:x += yx -= yx *= yx /= yx // yx %= yx **= y

    x = 3.1415
    
    x **= 3  # 与 x = x **3 等价  # 31.003533398375005
    

    5.3 数字类型的关系

    类型间可进行混合运算,生成结果为"最宽"类型

    • 三种类型存在一种逐渐"扩展"或"变宽"的关系:整数 -> 浮点数 -> 复数
    • 例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)

    六、数值运算函数

    一些以函数形式提供的数值运算功能

    函数及使用描述
    abs(x) 绝对值,x的绝对值,abs(-10.01) 结果为 10.01
    divmod(x,y) 商余,(x//y, x%y),同时输出商和余数,divmod(10, 3) 结果为 (3, 1)
    pow(x, y[, z]) 幂余,(x**y)%z,[..]表示参数z可省略,pow(3, pow(3, 99), 10000) 结果为 4587
    round(x[, d]) 四舍五入,d是保留小数位数,默认值为0,round(-10.123, 2) 结果为 -10.12
    max(x1,x2,,xnx1,x2,⋯,xn ) 最大值,返回x1,x2,,xnx1,x2,⋯,xn 中的最大值,n不限,max(1, 9, 5, 4 3) 结果为 9
    min(x1,x2,,xnx1,x2,⋯,xn ) 最小值,返回x1,x2,,xnx1,x2,⋯,xn 中的最小值,n不限,min(1, 9, 5, 4 3) 结果为 1
    int(x) 将x变成整数,舍弃小数部分,int(123.45) 结果为123; int("123") 结果为123
    float(x) 将x变成浮点数,增加小数部分,float(12) 结果为12.0; float("1.23") 结果为1.23
    complex(x) 将x变成复数,增加虚数部分,complex(4) 结果为 4 + 0j

    七、小结

    • 整数类型的无限范围及4种进制表示
    • 浮点数类型的近似无限范围、小尾数及科学计数法
    • +、-、*、/、//、%、**、二元增强赋值操作符
    • abs()、divmod()、pow()、round()、max()、min()
    • int()、float()、complex()
  • 相关阅读:
    423. Reconstruct Original Digits from English
    400. Nth Digit
    397. Integer Replacement
    396. Rotate Function
    365. Water and Jug Problem
    335. Self Crossing
    319. Bulb Switcher
    线段树-hdu2795 Billboard(贴海报)
    线段树---求逆序数
    线段树——单点替换区间最值
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14129387.html
Copyright © 2011-2022 走看看