show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次深入了整型的细节
- python 把复杂的逻辑都留给自己
- 对我们提供一个近乎无限大的整型变量
- 可以做绝对精确的计算
- 还不会溢出
- 很厉害
- python 还可以用千分位符分割整数和小数
- 这有利于观察很大的数字
- 这些很大的数字都怎么来的?
- 加法和乘法都比较慢
- 有乘方运算吗??🤪
- 什么不会就搜什么
- 两种方法都可以计算出乘方的值
- 前面的是底数
- 后面的是指数
- 什么时候 计算机可以算 乘方了呢?
- 莱布尼茨的计算器
- 可以 算 平方
- 但是不能算 3次方
- 巴贝奇 发明了
- 差分机
- difference engine
- diff2(x)
- 这个是 二次微分
- 具体值为 4
- 常量 Constant
- 如果是 n项式 n次微分之后 也得到 常量
- diff1(x)
- 这个是 一次微分
- = 2(x + 1)2 - 3(x + 1) + 2 - 2x2 + 3x -2
- = 2x2 + 4x + 2 - 3x - 3 + 2 - 2x2 + 3x -2
- = 4x - 1
- 当x=0时
- diff1(0) = -1
- 根据下图计算方法得到n+1
- 当然不止是 2项式
- 机器计算能力不断增强
年代 | 计算器 | 人物 | 功能 |
---|---|---|---|
1642 | 帕斯卡计算器 | 帕斯卡 | 五位 加减法 |
1671 | 莱布尼茨计算器 | 莱布尼茨 | 16位 加减乘除 |
1822 | 差分机 | 巴贝奇 | 可计算多项式 精度达到6位小数 |
- 为蒸汽朋克 打下基础
- 巨大的数据量 看起来好长
- 有什么办法简化一下吗?
- 乘方和前后次序有关
- 301000 和 100030 结果不同
- 科学计数法表示的类型是浮点型数字
- 浮点型数字是有范围的
- 如果超过
$1e308$ 就会报错
- 如果超过
- 科学计数法支持其他进制么?
- 这显然是按照整型变量进行计算的
- 远远超过了传统的计数规则
Value | Symbol | English standard | 中文 |
---|---|---|---|
1024 | Y | yotta | 尧 yáo |
1021 | Z | zetta | 泽 zé |
1018 | E | exa | 艾 ài |
1015 | P | peta | 拍 pāi |
1012 | T | tera | 太 tài |
109 | G | giga | 吉 jí |
106 | M | mega | 兆 zhào |
103 | k | kilo | 千 qiān |
102 | h | hecta | 百 bǎi |
101 | da | deca | 十 shí |
- 原来只能说不计其数、恒河沙数
- 现在真的能写出来
- 还能算
- 单个科学计数法支持其他进制么
- 显然不支持
- 如果非要使用一定要转化之后进行使用
- 那我可以把最大的浮点型转化为整数,然后计算么?
- 服务器愣住了 😵💫
- 乘方 不愧是 累乘 运算
- 小结一下各种运算
- 原来的优先级
- 从左到右计算
- 先乘除
- 后加减
- 有括号的要优先
- 乘方运算优先级高于乘除运算
- 除了优先级之外
- 还需要注意类型转化
- 浮点数和整数运算
- 属于混合类型的运算
- 其实系统要先把整型转化为浮点型
- 然后再计算
- 这个过程我们对我们隐藏
- 所以也叫隐式转化
- 有隐式就有显式
- 浮点型和整型运算
- 默认是把整型隐式转化为浮点型
- 也可以把浮点型显示转化为整型
- 用 int() 函数强制显示转化完成
- 明明白白看得见的转化
- 叫做显示转化
- 这样就是两个整型变量的加法了
- 早期的python是没有这么复杂的
- 早啥情况啊?
- 先去总结
- 乘方运算符是**
- 优先级高于乘除
- 浮点型和整型都支持
- 我们学了好多运算符
- 加法是最基础的运算
- 减法是加法的逆运算
- 乘法是累加
- 除法是乘法的逆运算
- 乘方是累乘
- 对数是乘方的逆运算
- 为什么先乘除后加减?
- 这就得回忆ast树生成的时候
- 优先级
- 结合性
- 一层层的
- 就像套娃一样
-
具体到py程序 也是一层层的
- python3 是 zsh上的 应用
- math 是 python3 里面的包
-
我想跳出这个层级
- 在python程序中
- 直接执行shell中的命令
- 在python程序中
-
可以吗?🤔
-
下次再说 👋