show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次研究了
- 大于
- 小于
- 等于
- 不等于
- 数字各个类型之间可以比较
- 但是要注意有的是 decimal 和 float 之间有的精确度的差别
- nan 一切比较结果都为 False
- inf 可以参与比较
- 数字和字符串之间不能比较
- 字符串之间可以比较么?🤔
- 字符串 str 按照对应字符的 unicode 编码的序号来进行比较
- 如果有中文,还满足么?
- 中文也是先转化为序号然后比较
- 多个字符呢?
- 第一个字符相等看第二个
- 第二个谁大就是整体大
- 如果第二个也相等呢?
- 依次对应位置比较下去
- 从前往后挨个比较
- 只要不是平局就是最终结果
- 字符串属于字符的序列
- 但是如果前三个都相等,但是
- 一个后面有字符
- 另一个没有呢?
- 如果没有对应了
- 任何字符都比空串要大
- 有大于无
- 整体的口诀是
- 从前往后,有大于无
- 可是比较字符串的大小有什么意义呢?
- 如果我们需要对人名册按照姓名排序
- 那么就一定要有姓名的排序方法
- 这种排序方法是基于字符串的
- 字符串可以说是最基本的类型
- 有些时候直接就拿字符串进行比较就好
- 比如比较1980-10-04和2022-01-22这两个日期
- 如果把他做年月日的截取
- 再转化为datetime类型
- 然后再比较
- 貌似逻辑上很清晰
- 但是没有必要
- 直接拿字符串比较就行了
- 开发效率和运行效率都很高
- 那么除了字符串序列之外
- 字节序列是否可以比较呢?
- 序列类的好像都差不多啊
- 从前往后一个个地比较
- 分出了胜负就是最终胜负
- 整体的口诀还是
- 从前往后,有大于无
- 字节序列是由字节组成的
- 那就要一个个字节地单挑
- 直到决出胜负
- 如果长度字符数量对不上呢?
- 从前向后
- 逐个字节 比较
- 先比能配对 比较的
- 最后
- 一方 所有的字节 都比较过了
- 另一方 还有字节 没有比较
- 任何字节 都比 没有字节 要大
- 这和字符串 一个规律
- 还有 什么序列类 元素 来着?
- 一样的
- 从前向后 捉对厮杀
- 分出胜负 就是 最终胜负
- 整体的口诀 还是
- 从前往后
- 有大于无
- 最后这个怎么理解
- 查看帮助手册
-
前两轮
- 不分胜负
-
最后一轮
- 比较的是 列表和整型
- 相当于比较 [3] > 0
- 比较的是 列表和整型
-
系统不支持相应的比较
- 但如果比较 fraction 和 decimal 呢?
- 列表相等是因为三个元素都相等
- 如果精度有问题
- 还是不等的
- 数量不等呢?
- 前面不分胜负
- 有后续的会胜出
- 第一轮不分胜负
- 第二轮列表比较
- 比较中
- 第一轮不分胜负
- 第二轮有后续的胜出
- 至此,可以推断序列类的比较运算规则基本一致
- 我们比较了
- 字符串 str 也就是字符序列
- 字节序列
- 列表
- 元组
- 列表和元组之间可以比较吗?
- 可以判断是否相等或不等
- 但是不能判断大于小于
- 这次研究下面这些类的比较运算符
- 字符串 str
- 字节序列 bytes
- 列表 list
- 元组 tuple
- 从头到尾按顺序比较序列中的每个元素
- 如果有分出大小
- 就是最终的大小
- 如果有一方没有了元素了
- 另一方就大
- 如果没有分出大小就继续向后
- 如果有分出大小
- 整体的口诀还是
- 从前往后,有大于无
- 如果有嵌套的列表之类的东西
- 就比较这两个列表
- 如果此子列表中还有列表
- 就继续比较下去
- 直到分出胜负
- 除了列表之外还有什么容器呢?🤔
- 下次再说 👋