数字

Python 核心编程[第五章]

0x00数字简介

数字的描述:标量存储、直接访问、不可变类型
包含类型:整型、长整型、布尔型、双精度浮点型、十进制浮点数、复数

1.赋值
var = xxx
2.更新
  • 并不是真正的更新、只是改变了装数据的盒子,相当于新建。
3.删除
del var

0x01整型

1.布尔型
  • 只有两个数值:True False
2.标准整型
  • 在32位机器上编译取值范围为 -2147483648 ~ 2147483647(-231~231-1) 即 32 位整数,在 64 位上将是 64 位整型。并且支持八进制(0 开头)、十六进制(0x开头)等。
3.长整型
  • Python 支持的长整型仅仅与机器支持的内存(虚拟)大小有关,当表达数据超过标准整型时可以使用长整型表示,通常标准整型后边添加 L / l 表示
4.整型和长整型统一
  • 现在长整型与整型已经逐渐同一

0x02双精度浮点型

  • Python 中的双精度类似 C 的 double 每个浮点型占 8 个字节,其中 52 位用于底,11 位用于指数,1 位用于符号,不过实际精度以来于机器架构和创建 Python 解释器的编译器。
  • 支持正常浮点表示和科学计数法浮点表示

0x03复数

复数对象拥有数据属性,分别为该复数的虚部和实部。复数还拥有 conjugate 方法(获取共轭复数对象)。

复数的所有属性

属性描述
num.real返回该复数是不
num.image返回该复数虚部
num.conjugate()返回该复数的共轭复数

0x04操作符

1.混合模式操作符

关于 ‘+’ 号,Python 很多类型之间都可以同类型间相加,不同数字类型之间也可以相加,不过这个相加是先将一种操作类型转换为另一种操作类型(小范围转化为大范围,比如整数转化为浮点型)

2.标准类型操作符

第四章中的一些标准操作符都可以用于数值类型

3.算数操作符
  • 支持单目: + - 正负号
  • 双目:+ - * / % ** //

  • 除法:
    • 现在 Python 中的除法是我们日常认知中的除法,而不是 C 语言中的除法,现在可以用 // 符号表示整除。
  • 取余:
    • 整数取余:正常取余
    • 复数取余:x-(math.floor((x/y).real)*y)
  • 幂运算:
    • 幂运算操作符比其左操作数的一元才足以符优先级低,比其右侧操作数的一元操作符的优先级高

      -3 ** 2 == 9
      2 ** -1 = 0.5
      
4.位操作符
  • 支持的位操作运算:~ & | ^ << >>
  • 处理规则:
    • 负数会被当成正数的 2 进制补码处理。
    • 左移和右移 N 位同等无溢出检查的 2 的 N 次幂运算:2 ** N
    • 对于长整型来说,位操作符使用一种经修改的 2 进制补码形式,使得符号位可以可以无限向左扩展
  • 优先级:~ 运算与数字单目操作符相同,大于左移右移的优先级低于加减法运算。与 或 异或优先级最低。
  • 按优先级排序:~ << >> & ^ |

0x05内建函数和工厂函数

1.标准类型函数
  • str()
  • type()
2.数字型函数
  • 转换工厂函数
    • int()
    • long()
    • float()
    • complex()
    • bool()
    • Python 2.3 开始,Python 标准数据类型添加了 Boolean 类型
  • 功能函数
    • abs():返回一个绝对值
    • coerce():将参数一和参数二转换为同一类型然后返回一个元组
    • divmod():返回一个包含商和余数的元组
    • pow():**
    • round() :用于浮点型的四舍五入。第二个参数可选保留小数位,如果没有则返回里所传数最接近的整数
3.仅用于整型的函数
  • 进制转换函数
    • hex()
    • oct()
    • bin()
  • ASCII 转换函数
    • ord()
    • chr()

0x06其他数字类型

1.布尔"数"

尽管布尔型添加进 Python 但它实际上是整型的子类,对应值为 1 和 0。
布尔类型的概念

  • 有两个永不变的值 True False
  • 是整型的子类但是不可再被继承
  • 没有 __nonzero __() 方法的对象的默认值是 True
  • 对于值为零的任何数字、空集(空列表、空元素、空字典)Python 中的布尔值都是 False
  • 在数学运算中 True False 分别对应 1 和 0
  • 以前返回整型的大部分标准库和内建布尔型函数现在都返回布尔型
2.十进制浮点型
  • 用于解决一些精度问题,导入 decimal 模块以便使用 Decimal 类

0x07相关模块

数字类型相关模块

模块介绍
decimal十进制浮点运算类 Decimal
array搞笑数值数组(字符、整型、浮点型)
math/cmath标准 C 库数学运算函数。常规数字运算在 match 模块,复数运算在 cmath 模块
operator数字操作符的函数实现
random多种伪随机数生成器

random 模块

randint()两个整型参数,返回二者之间的随机整数
randrange()接受和 range() 函数一样的参数,随机返回 range([start,] stop [,step]) 结果的一项
uniform()和 randint() 几乎一样,不过它返回的是二者之间的浮点型(不包括上限)
random()类似 uniform,只不过下线恒为 0.0,上限恒为 1.0
choice()随机返回给定序列的一个元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值