Skip to content

Latest commit

 

History

History
178 lines (126 loc) · 4.38 KB

7050-203062-000705 序列类容器的比较运算.sy.md

File metadata and controls

178 lines (126 loc) · 4.38 KB
show version enable_checker
step
1.0
true

比较运算符

回忆

  • 上次研究了
    • 大于
    • 小于
    • 等于
    • 不等于
  • 数字各个类型之间可以比较
  • 但是要注意有的是decimal和float之间有的精确度的差别
  • nan一切比较结果都为False
  • inf可以参与比较
  • 数字和字符串之间不能比较
  • 字符串之间可以比较么?🤔

字符串比较

图片描述

  • 字符串str 按照对应字符的unicode编码的序号来进行比较

图片描述

  • 如果有中文,还满足么?

中文

图片描述

  • 中文也是先转化为序号然后比较
  • 多个字符呢?

比较

图片描述

  • 第一个字符相等看第二个
  • 第二个谁大就是整体大
  • 如果第二个也相等呢?

第三个

图片描述

  • 依次对应位置比较下去
  • 只要不是平局就是最终结果
  • 字符串属于字符的序列
  • 但是如果前三个都相等,但是
    • 一个后面有字符
    • 另一个没有呢?

没有对应

  • 如果没有对应了
  • 任何字符都比空串要大

图片描述

  • 字节序列是否可以比较呢?

字节序列

图片描述

  • 序列类的好像都差不多啊
  • 从前往后一个个地比较
  • 分出了胜负就是最终胜负

图片描述

试试

图片描述

  • 字节序列是由字节组成的
  • 那就要一个个字节地单挑
  • 直到决出胜负
  • 如果长度字符数量对不上呢?

长度

图片描述

  • 先比能对得上的
  • 最后没有字节的一方就输了
  • 任何字节都比没有字节要大
  • 这和字符串一个规律
  • 还有什么序列类元素来着?

列表

图片描述

  • 一样的
  • 从前向后捉对厮杀
  • 分出胜负就是最终胜负
  • 最后这个怎么理解
  • 查看帮助手册

帮助

图片描述

图片描述

  • 前两轮不分胜负
  • 最后一轮比较列表和整型
  • 系统不支持相应的比较
  • 但如果比较fraction和decimal呢?

比较

图片描述

  • 列表相等是因为三个元素都相等
  • 如果精度有问题
  • 还是不等的
  • 数量不等呢?

原理

图片描述

  • 前面不分胜负
  • 有后续的会胜出

图片描述

  • 第一轮不分胜负
  • 第二轮列表比较
    • 比较中
    • 第一轮不分胜负
    • 第二轮有后续的胜出

手册

图片描述

  • 至此,可以推断序列类的比较运算规则基本一致
  • 我们比较了
    • 字符串str 也就是字符序列
    • 字节序列
    • 列表
    • 元组
  • 列表和元组之间可以比较吗?

列表和元组

图片描述

  • 可以判断是否相等或不等
  • 但是不能判断大于小于

总结

  • 这次研究以下类的比较运算符
    • 字符串str
    • 字节序列bytes
    • 列表list
    • 元组tuple
  • 从头到尾按顺序比较序列中的每个元素
    • 如果有分出大小
      • 就是最终的大小
    • 如果有一方没有了元素了
      • 另一方就大
    • 如果没有分出大小就继续向后
  • 如果有嵌套的列表之类的东西
    • 就比较这两个列表
    • 如果此子列表中还有列表
    • 就继续比较下去
    • 直到分出胜负
  • 除了列表之外还有什么容器呢?🤔
  • 下次再说👋