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> 38not 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 其实我们以前见过
- try 之后
- 如果出了问题
- 或者说发现了异常
- 进入 except
- 如果没出问题
- 进 else
- 如果出了问题
- 但是要说起 else
- 还是和 if 最为登对
- 注意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社区分裂了
- 这就是当时python 遇到的抉择
- 舒服地 享受过去的代码
- 还是痛苦地 面对未来 早做准备
- 更有能力的人 一般 也更有勇气
- Guido和团队 想到了转化
- 社区 面临着 分裂!
- 愿意搞2的就去继续用2
- 愿意搞3的就来用3
- 延长了python2的 生命周期
- 这是 无奈之举
- 也是 妥协的产物 斗争的结果
- 整整十年 社区都处于分裂中
- 口碑 对于python
- 也是很重要的
- 从 2005 到 2012
- Guido在google工作
- 用一半的时间 来处理python的问题
- 另一半时间做数据可视化的一个东西
- 叫做 Mondrian(蒙德里安)
- Guido坚定的认为
- python3应该是未来
- 但是 他也同时保证着python2也还能运行
- Guido 提供了一个程序可以完成2to3
- 使用翻译方式的话
- 工作量 巨大
- 直到2020年
- 2013年Guido去了DropBox
- 在dropbox他主要负责 云计算
- 还真是 什么火 做什么
- 永远 在时代的潮头
- 头发浓密
- 有点 不符合 他的地位 了
- python2 顺利过渡到 python3
- 未来 会有python4 么?
- 当时最新的是3.14
- Guido说
- 从2到3的那种激进的演化过程
- 不会再发生了
- 从2到3的那种激进的演化过程
- 单个的 if
- 是单分支结构
- if - else
- 是双分支结构
- else 和 if 配对的
- 满足 if条件
- 就运行 if
- 不满足 if条件
- 就运行 else
- 满足 if条件
- 双分支还有什么好玩的例子吗?
- 怎么做呢???🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。



















