zoukankan      html  css  js  c++  java
  • 数字数据类型

    一、概述

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

    二、整数类型

    如果学给数学的化都可以理解,就是与数学中的整数概念一致

    • 可正可负,没有取值范围限制

    • pow(x, y) 函数,计算xy,想幂多少就幂多少

      pow(2, 10) # 1024
      pow(2, pow(2,5))  # 4294967296
      
    • 四种进制表示形式

      1. 十进制: 1024,8,32
      2. 二进制:以0b或0B开头:ob0001, 0B0010
      3. 八进制: 以0o或0O开:0o123, 0O321
      4. 十六进制: 以0x或0X开头:0x5b, 0X6a

      三、浮点数类型

      与数学中实数的概念一致

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

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

      0.1 + 0.3  # 0.4
      0.1 + 0.2  # 0.30000000000000004
      
      • 0.1: 53位二进制表示小数部分,约1016

        • 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()函数辅助
      • 不确定尾数一般发生再10^16左右, 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之商 eg: 10 / 3 结果为3.33333333333
      x // y 整数除,x与y之整数的商, 10 // 3 结果为:3
      +x x的本身
      -y y的负值
      x % y 余数,模运算, 10 % 3 结果为:1
      x ** y 幂运算,x的y次幂,xy ,当y为小数是,开放运算,10**0.5,结果为 :x1/2

      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数据类型的关系

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

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

      六、数值运算函数

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

      函数及使用 描述
      abs(x) 绝对值,x的绝对值,abs(-1)结果为:1
      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(1.234, 2)结果为:1.23
      max(x1,x2,x3,...,xn) 最大值,返回x1,x2,x3,...,xn其中最大值,n不限,max(1,2,5,8,9)结果为:9
      min(x1,x2,x3,...,xn) 最小值,返回其中x1,x2,x3,...,xn最小的值,你不限,min(3,4,6,8,0)结果为:0
      int(x) 将x变成整数,舍弃小数部分,int(123.4)结果为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()

    八、练习

    1. 周一到周五进步0.01,然后双休日退步0.01,这个怎么计算
    base = 1
    factory = 0.01
    for i in range(365):
        if i % 7 == 6:
            base *= (1-0.01)
        elif i % 7 == 0:
            base *= (1-0.01)
        else:
            base *= (1 + factory)
    print("base:", base)
    
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    springMVC的自定义类型的转换器
    pl/sql
    oracle中的函数
    Oracle基础
    跳台阶算法题
    红黑树
    优先队列
    堆排序
    H5页面,输入框的光标,如果页面上下滑动光标停留在页面上,除了输入框外,松手过了一段时间才跑回输入框里面
    正则:判断为数字,输入的金额整数位不得超过9位,小数位不得超过2位!
  • 原文地址:https://www.cnblogs.com/randysun/p/11196905.html
Copyright © 2011-2022 走看看