Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0385
- 这是 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`
---- 浮点型(float) 的 nan 很特殊
- 还有 精准十进制(Decimal)的 nan
- 他们的任何比较都是 False!
- nan
- not-a-number
- 这和 ieee754
- 对于 这个行为的定义
- 是一致的
float("nan")
type(float("nan"))
float("nan") == float("nan")
import decimal
decimal.Decimal("nan")
decimal.Decimal("nan") == decimal.Decimal("nan")
- 确实如手册所写
- 所有和 nan 的比较运算结果
- 都为 False
- 但唯独除了一种情况
- 哪种情况呢?
float("nan") != float("nan")
- 不等于的 情况
- NaN(not a number)
- 在数学表示上表示一个无法表示的数
- 无法描述的数不等于任何数
- 无法描述的数也不等于无法描述的数
- 和这个 nan 类似的 inf 是什么意思来着?
- 指数部分全 1 的话
- 尾数部分不是全零就是 NaN
- 尾数部分全零就是 inf
- inf
- infinite
- 具体怎么理解呢?
- 上次研究了
- 大于
- 小于
- 等于
- 不等于
- 数字各个类型之间可以比较
- 通过比较 可以把相对连续的量
- 转化为 布尔类型
- 也就是数字化
- inf
- infinite
- 具体怎么理解呢?
- fine
- 金银的质量
- 无瑕疵的
- 纯度高的
- 金银的质量
- 能分得出来的
- 最高质量的
- to make fine
- 和解、解决争端
- 作为对某种违法行为的惩罚而征收的钱款
- 债务到期了
- 帐该清了
- 得找钱
- 找人提供资金
- financial
- 金融的
- refine
- re- 重新
- fine 提纯
- 如果不够锋利,就需要
- 精炼; 提纯;
- 去除杂质;
- 改进; 改善;
- 使精练
-
终结 某件事情
- 交钱了事
-
finish
- 终点
- 界限
- 边界
- 生命的终点
- 终止
- 结束
- 武器的锋利程度
- 顶个尖儿的
- final、finally
- 最后
- confine
- con- 全部
- fine 界限
- 到处都是界限
- confine
- 限制
- define
- de- 强调
- fine 边界
- 勾画出…的轮廓或外形:
- 边界明确
- 定型了
- 边界明确
- definitely
- 下明确的定义
- 有明确的形状
- 下明确的定义
- fix
- 精修之后
- finish、finished
- 已经完成了
- finite [ˈfaɪnaɪt]
- 有限的
- fine- 界限、边界
- -ite 有什么性质的
- 有边界性质的
- 有限的
- infinite
- inf 和 nan 的不同在于
- inf 是一个超过浮点表示范围的浮点数
- 其本质仍然是一个数
- 只是他无穷大
- 因此无法用浮点数表示(比如 1/0)
- 而 nan 则一般表示一个非浮点数(比如无理数)
- 在数学上
- inf==inf
- 且
- inf == inf + X(X 为任意浮点数)
- 而 nan != nan
- 如此说来
- 如何判断一个数是否是 nan 呢?
- python 中
- 判断一个数 是否是 nan
- 可以直接判断 他是否与自身 相等
- 如果就想要 直接判断呢?
import math
x = float("nan")
math.isnan(x)
- 使用数学模块
- math 包中的 isnan 函数
- is 的意思是进行判断
- nan 的意思是 不是一个数字(Not a Number)
- 合在一起 就是判断 这个参数是不是一个数字
- 判断 是否不是数(nan) 可以用 isnan
- 想要判断变量是否是无穷大
- 又该如何呢?
- 这也由是 754中 对于inf的定义决定的
- 你说这东西分这么细不是分别心么?
- 是的
- 就是分别心
- 就是不断把刀磨得锐利明确的过程
- 编程其实是 一个抽象的艺术
- 有了抽象之后 就会有量化
- 有了量化 自然要进行比较
- 编程中到处 都是比较
按你要求:23行一一对应,左边纯英文,句尾用 <br>,表格紧凑瘦版:
| EN | 中文 |
|---|---|
| Beautiful is better than ugly. |
优美比丑陋好 |
| Explicit is better than implicit. |
清晰比晦涩好 |
| Simple is better than complex. |
简单比复杂好 |
| Complex is better than complicated. |
复杂比错综复杂好 |
| Flat is better than nested. |
扁平比嵌套好 |
| Sparse is better than dense. |
稀疏比密集好 |
| Readability counts. |
可读性很重要 |
| Special cases aren't special enough to break the rules. |
特殊情况也不应该违反这些规则 |
| Although practicality beats purity. |
但现实往往并不那么完美 |
| Errors should never pass silently. |
异常不应该被静默处理 |
| Unless explicitly silenced. |
除非你希望如此 |
| In the face of ambiguity, refuse the temptation to guess. |
遇到模棱两可的地方,不要胡乱猜测 |
| There should be one-- and preferably only one --obvious way to do it. |
应有一种——且最好只有一种——显而易见的方法 |
| Although that way may not be obvious at first unless you're Dutch. |
虽然这种方案起初并不明显,除非你是荷兰人 |
| Now is better than never. |
现在开始做比不做好 |
| Although never is often better than right now. |
但不做通常比立刻动手要好 |
| If the implementation is hard to explain, it's a bad idea. |
如果实现难以解释,那就是个坏主意 |
| If the implementation is easy to explain, it may be a good idea. |
如果实现易于解释,那或许是个好主意 |
| Namespaces are one honking great idea -- let's do more of those! |
命名空间是个超棒的主意,我们应该多用 |
- 分析下面的不等式结果成因
- 这些不符合我们直觉结果的原因
- 是由于ieee754规则和相关运算规则确定的
- 数字从此定了边界
- 被define了
- 探测和验证代码在处理极端的或偏门的情况时会发生什么
- 这门学问叫做边界测试
- 这次研究了
- 大于
- 小于
- 等于
- 不等于
- 数字各个类型之间可以比较
- 但是要注意有的是 decimal 和 float 之间有的精确度的差别
- nan 一切比较结果都为 False
- inf 可以参与比较
- 数字和字符串之间可以比较么?
- 字符串之间可以比较么?🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。






















