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)
    
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/randysun/p/11196905.html
Copyright © 2011-2022 走看看