Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0156
- 这是 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`
---- 上次思考了 条件的次序
- 都有的 子判断
- 可以 提到外面
- 概率低的 判断
- 可以 放在前面
- 都有的 子判断
- 二分法
- dichotomy [daɪˈkɒtəmi]
- dicho-
- 二
- 来自di-的希腊语形式
- -tomy
- 砍,切
- 词源同 atom, anatomy
- 即切成两半的
- 问题就是 嵌套层次太多了
- 可以 搞扁平了吗?🤔
- 这 if 条件本质上是分段
bmi = 25
if bmi >= 25:
if bmi >= 30:
print("Obese!")
else:
print("Overweight!")
else:
if bmi >= 18.5:
print("Normal!")
else:
print("Underweight!")- 先 从中间 分开
- 然后 左右再分开
- 层层深入
- elif 其实就是 else + if
- 和 if 并排
- 可以 从轻到重
- 一段段来吗?
- 嵌套条件语句 就变成
- 多分支条件语句
bmi = 35
if bmi <= 18.5:
print("Underweight!")
elif bmi <= 25:
print("Normal!")
elif bmi <= 30:
print("Overweight!")
else:
print("Obese!")
- 层层深入 变成了
- 多个分支
- 但是 可能经历 3次判断
- 原来最多经历2次
- 体重过轻 和 体重过重
- 其实 也 可以细分
- 可各个分成 三个级别
- 这依然 不用嵌套
- 用多分支就搞定了
- 判断 同一个变量
- 最好 不用 嵌套
- 而用 多分支
- 分类之后 可以 筛出结果
- elif 可以 将分支细化
- 情况不同
- 分类讨论
- 处理策略
- 来看个例子
- quadratic equation
- 二次方程式
#!/usr/bin/env python3
import math
# 输入系数 a, b, c
a = int(input("Enter value of a: "))
b = int(input("Enter value of b: "))
c = int(input("Enter value of c: "))
# 计算判别式 delta
delta = b**2 - 4*a*c
# 三种情况判断
if delta < 0:
print("Roots are imaginary (虚根,无实根)")
elif delta == 0:
# 只有一个实数根(重根)
root = -b / (2 * a)
print(f"Roots are real and equal: x = {root}")
else:
# 两个不相等的实数根
root1 = (-b + math.sqrt(delta)) / (2 * a)
root2 = (-b - math.sqrt(delta)) / (2 * a)
print(f"Root 1 = {root1}")
print(f"Root 2 = {root2}")- 实根
- 虚根
- 决策过程
- 像 一棵树
- 有很多的 分支
- 决策树
- 根据数值的不同
- 就会出现不同的结果
- 十二星座
- 十二生肖
- 同一个人
- 使用不同的 分类方法
- 会有不同的 解释体系
- 一年可以分为
- 四季
- 十二月
- 二十四节气
- 节气是如何划分的呢?
- 根据日晷
- 测定时辰
- 根据圭表
- 掌握了 太阳周期 和 四季分布的规律
- 清明前后
- 种瓜种豆
- 芒种
- 有芒之谷类作物可种
- 过此即失效
- 这些都是 if语句
- 掌握了 植物生长规律
- 从而 进入了农业社会
- 七十二物候
- 1节气 = 3候
- 1候 = 5天
- 立春
- 一候东风解冻
- 二候蛰虫始振
- 三候鱼陟负冰
- 雨水
- 一候獭祭鱼
- 二候鸿雁来
- 三候草木萌动
- 惊蛰
- 一候桃始华
- 二候仓庚鸣
- 三候鹰化为鸠
- 春分
- 一候玄鸟至
- 二候雷乃发声
- 三候始电
- 清明
- 一候桐始华
- 二候田鼠化为鴽
- 三候虹始见
- 谷雨
- 一候萍始生
- 二候鸣鸠拂其羽
- 三候戴胜降于桑
- 立夏
- 一候蝼蝈鸣
- 二候蚯蚓出
- 三候王瓜生
- 小满
- 一候苦菜秀
- 二候靡草死
- 三候麦秋至
- 芒种
- 一候螳螂生
- 二候鵙始鸣
- 三候反舌无声
- 夏至
- 一候鹿角解
- 二候蜩始鸣
- 三候半夏生
- 小暑
- 一候温风至
- 二候蟋蟀居壁
- 三候鹰乃学习
- 大暑
- 一候腐草为萤
- 二候土润溽暑
- 三候大雨时行
- 立秋
- 一候凉风至
- 二候白露降
- 三候寒蝉鸣
- 处暑
- 一候鹰乃祭鸟
- 二候天地始肃
- 三候禾乃登
- 白露
- 一候鸿雁来
- 二候玄鸟归
- 三候群鸟养羞
- 秋分
- 一候雷始收声
- 二候蛰虫坯户
- 三候水始涸
- 寒露
- 一候鸿雁来宾
- 二候雀入大水为蛤
- 三候菊有黄华
- 霜降
- 一候豺乃祭兽
- 二候草木黄落
- 三候蛰虫咸俯
- 立冬
- 一候水始冰
- 二候地始冻
- 三候雉入大水为蜃
- 小雪
- 一候虹藏不见
- 二候天气上升地气下降
- 三候闭塞而成冬
- 大雪
- 一候鹖鴠不鸣
- 二候虎始交
- 三候荔挺生
- 冬至
- 一候蚯蚓结
- 二候麋角解
- 三候水泉动
- 小寒
- 一候雁北乡
- 二候鹊始巢
- 三候雉始雊
- 大寒
- 一候鸡乳
- 二候征鸟厉疾
- 三候水泽腹坚
- 古人指导播种、耕耘、收获、畜牧的“自然日历”
- 天人合一:体现人与自然节律同步的哲学思想
- 我要做这么个多分支
- 判断 num
- 大于0时
- 报告大于零
- 小于0
- 报告小于零
- 当 num == 0 的时候
- 什么也不干
- 大于0时
- 代码如下
num = -23
if num > 0:
print("more than 0")
elif num == 0:
else:
print("less than 0")- 报了一个缩进的错误
- 可是我就想要 num == 0 时
- 什么都不做啊?
- 有这么一个关键字 pass
- 他的意思就是啥都不做
- 就像玩牌的时候
- 什么都不出
- pass 直接过
num = -23
if num > 0:
print("more than 0")
elif num == 0:
pass
else:
print("less than 0")- 帮助手册里究竟是怎么说的呢?
- pass 是空运算
- 当被执行的时候
- 没有任何事情发生
- 他是有用的占位标志
- 当需要一个语句
- 但是并不做任何事的时候
- 就可以用 pass
- 在num == 0的时候
- 先把写代码的位置空出来
num = -23
if num > 0:
print("more than 0")
elif num == 0:
pass
#print("equals 0")
else:
print("less than 0")
- 这就是pass
- 这次了解了 elif
- elif 就是 else + if
- 可以构成多分支语句
- 在某些分支上
- 啥都不做
- 就是pass
- 生活中 有这种
多分支吗????🤔 - 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。






















