Skip to content

Latest commit

 

History

History
371 lines (266 loc) · 7.4 KB

File metadata and controls

371 lines (266 loc) · 7.4 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0150
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在: 
	- 个人网站: `https://oeasy.org` 
	- 蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
	- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
	- Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

比较运算符

回忆

  • 上次研究了 is
    • 身份比较
    • Identity comparision
    • 看的是 变量 是否 相同
关键词 含义
in 是否在容器里
is 是否是同一个对象
  • not
    • not 就是取反
    • True 变 False
    • False 变 True

图片描述

  • 如果 我想对 比较结果
    • 分别处理
    • 该怎么办呢???🤔

重来

  • 编辑文件
vi t.py
  • "+P
    • 将代码粘贴进去
t = float(input("your temperature:"))
if t > 38:
    print("\033[41m[warning]\033[0mYou have a fever!")
    print("\033[41m[warning]\033[0mTake a rest!")
  • 保存并运行

图片描述

效果

  • 如果 大于 38 度
    • 就报警

图片描述

  • 不大于 38 度
    • 没有任何操作

图片描述

  • 如果想 不大于 38度
    • 也有操作 呢 ?

新条件

  • dG

    • 将代码删除
  • 在 38度 一分为二

    • 合起来 是 全集
    • 交起来 是 空集
t = float(input("your temperature:"))
if t > 38:
    print("\033[41m[warning]\033[0mYou have a fever!")
    print("\033[41m[warning]\033[0mTake a rest!")
if not t > 38:
    print("\033[42m[info]\033[0mYou are fine!")
    print("\033[42m[info]\033[0mBe happy!")
  • "+P

    • 将新代码粘贴进去
  • 这两个条件

    • t> 38
    • not t > 38
    • 刚好互斥

图片描述

  • 互斥 有啥特点

互补运算符

运算符 互补运算符
> <=
< >=
== !=
is is not
in not in
  • 还有个方法 构成互斥

    • 前面加否定 not
    • 就可以了
  • 比如 t > 38 互补的条件是

    • t <= 38
    • 交集为空
    • 并集为全集
    • 或者 not t > 38
  • 怎么理解互斥?

判断

  • 这是个岔路口
    • 二选一

图片描述

  • 每条路 都 输出提示

补充

  • not 让 真假 反转
t = float(input("your temperature:"))
if t > 38:
    print("\033[41m[warning]\033[0mYou have a fever!")
    print("\033[41m[warning]\033[0mTake a rest!")
if not t > 38:
    print("\033[42m[info]\033[0mYou are fine!")
    print("\033[42m[info]\033[0mBe happy!")
  • 这样的两个 if 具有特殊性

图片描述

  • 可以修改为 else

else

  • 回忆 else
    • 这个 else 其实我们以前见过
  • try 之后
    • 如果出了问题
      • 或者说发现了异常
      • 进入 except
    • 如果没出问题
      • 进 else

图片描述

  • 但是要说起 else
    • 还是和 if 最为登对

if - else

  • 注意else后面依然有冒号
t = float(input("your temperature:"))
if t > 38:
    print("\033[41m[warning]\033[0mYou have a fever!")
    print("\033[41m[warning]\033[0mTake a rest!")
else:
    print("\033[42m[info]\033[0mYou are fine!")
    print("\033[42m[info]\033[0mBe happy!")
  • 要么满足 t>38
    • 报警
  • 要么不满足 t>38
    • 报平安

流程图

  • 这种分析的方式

图片描述

  • 其实就是一分为二

古代神判法

  • 人类最早的「随机 if-else」

    • 古代没有证据、没有法律
    • 就靠老天爷来执行 if
  • 水审

if 扔水里浮起来 → 无罪
else 沉下去 → 有罪
  • 火审
if 手拿烧红铁不烫伤 → 无罪
else → 有罪
  • 面包奶酪审(中世纪欧洲)
if 能顺利咽下去 → 无罪
else → 有罪
  • 每个人 也时刻面临选择

分支

  • 人生道路
    • 面临各种选择
    • 坚决执行 选定的结果
    • 叫做决定

图片描述

  • 我们总会面对各种抉择

风景

  • 不同的 道路
    • 会有 不同的 风景
    • 会有 不同的 剧情

图片描述

  • 一切 都在于 你的选择
    • 可能 触发了 某些特定的 条件
  • 在 习以为常 中
    • 敏感地 体会变化
  • 依靠感知
    • 而不是惯性
  • 当年python的发展也曾经面对一次分叉路
    • Guido当时 又是如何抉择的呢?🤔

抉择

  • 随着时间到了2000年
    • python发现了 底层的 一些问题

图片描述

  • 问题要 解决的
    • 但 原来的代码 怎么办?
  • 已经 有大量 基于python2的 代码
    • 难道就 都作废了 吗?
    • 这就 不向下兼容 了
  • 2004年
    • python社区分裂了
      • 核心开发者 坚定地 开发3
      • 但是 用户 坚定地 拥护2
        • 不用改代码 就可以用
    • 为什么要搞到3?
  • 这就是当时python 遇到的抉择
    • 舒服地 享受过去的代码
    • 还是痛苦地 面对未来 早做准备
  • 更有能力的人 一般 也更有勇气
    • Guido和团队 想到了转化

翻译

  • 社区 面临着 分裂!
    • 愿意搞2的就去继续用2
    • 愿意搞3的就来用3

图片描述

  • 延长了python2的 生命周期
    • 这是 无奈之举
    • 也是 妥协的产物 斗争的结果
    • 整整十年 社区都处于分裂中
  • 口碑 对于python
    • 也是很重要的

选择

  • 从 2005 到 2012
    • Guido在google工作
    • 用一半的时间 来处理python的问题
    • 另一半时间做数据可视化的一个东西
      • 叫做 Mondrian(蒙德里安)

图片描述

  • Guido坚定的认为
    • python3应该是未来
  • 但是 他也同时保证着python2也还能运行

转化工具

图片描述

  • 使用翻译方式的话
    • 工作量 巨大
  • 直到2020年

最终

  • 2013年Guido去了DropBox
    • 在dropbox他主要负责 云计算

图片描述

  • 还真是 什么火 做什么
    • 永远 在时代的潮头
  • 头发浓密
    • 有点 不符合 他的地位 了

顺利过渡

  • python2 顺利过渡到 python3

图片描述

  • 未来 会有python4 么?

未来

  • 当时最新的是3.14

图片描述

  • Guido说
    • 从2到3的那种激进的演化过程
      • 不会再发生了

图片描述

总结

  • 单个的 if
    • 是单分支结构
  • if - else
    • 是双分支结构
  • else 和 if 配对的
    • 满足 if条件
      • 就运行 if
    • 不满足 if条件
      • 就运行 else

图片描述

  • 双分支还有什么好玩的例子吗?
    • 怎么做呢???🤔
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。