show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次看了除法 /
- 整数除以整数,可以得到
- 商 // 整除运算符
- 余数 % 取余数运算符
- 除数不能为零
- 那如果除数是小数呢?🤪
- 除法 / 运算肯定是可以的
- 如果 // 运算呢?
- 小数整除也是可以的
- 3里面有14个0.23
- 就是2.99
- 3里面有14个0.23
- 结果是小数 float 类型的数字
- 数字是可以转化为整数的
- 小数除法可以取余么?
- 逻辑和整数差不多
- 那负数呢?
- 负数可以整除取余数么?
- 好像可以回去
- 貌似能说通
- 可是为什么是-14.0
- 而不是-13.0
- 我们还是得从取整说起
- 四舍五入用看的是小数点后一位
- 也就是十分位
- 四舍五入
- 除此之外还有什么取整方法么?
- 只要是小数部分不为零
- 就按照上面的数字来
- 使用之前要先
- import math
- 很像虚岁
- 问多大了?
- 6 岁过了半天
- 虚岁也算 7 岁
- 是不是天花板一定往上走呢?
- 上面的这个精度浮点型取不到
- 从有效数字部分就给截取了
- 有天花板就得有地板
- 就很像实岁
- 只要没到 7 岁生日那天
- 实岁都算 6 岁
- 地板取整也有特例么?
- 超出他有效数字的精度
- 在做地板取整之前
- 得到原始数字的时候得到的就是 3.0
-
三种取整方法
-
floor 向下 地板取整
-
ceil 向上 天花板取整
-
round 理谁近找谁 四舍五入取整
-
int 函数取整的话
-
用的是天花板还是地板呢?
- 正数部分是地板
- 负数部分是天花板
- 这和除法运算有什么关系呢?
- 可以看出 python3 中的除法是地板除
- 那取余是怎么取的呢?
- 因为整除是地板除
- 所以商是地板商
- 余数自然是地板余数
- 正数验证成功
- 负数呢?
- 负数取余验证成功
- 可是如果是
$8/(-3)$ 呢 - 不要翻页
- 自己验证一下
- 同样是地板的方式
- 如果被除数和除数都是负数呢?
- 验证成功
- 如果是 divmod 用的是哪种除法呢?
- 只要是整除取余的操作
- 用的都是地板取整
- 从指令角度呢?
- //真的是地板除
- 写的明明白白的
- FLOOR
- 如果是/的话
- 是真除
- TRUE
- 这种地板除有什么用处么?
- 在阿拉伯数字之外
- 我们也有自己进化过来的一套数字表示方法
- 为了避免数字混淆
- 有的时候我们会把阿拉伯数字变成大写数字
- 12345
- 壹万贰仟叁佰肆拾伍
given = 12345
wan = given // 10000
qian = (given // 1000) % 10
bai = (given // 100) % 10
shi = (given // 10) % 10
ge = given % 10
position = tuple("万仟佰拾")
numbers = tuple("零壹贰叁肆伍陆柒捌玖")
result = numbers[wan] + position[0]
result += numbers[qian] + position[1]
result += numbers[bai] + position[2]
result += numbers[shi] + position[3]
result += numbers[ge]
print(result)
- 这样我们就可以得到大写数字了
- 这代码有点复杂
- 可以先玩一玩
- 我们以后会详细了解细节
- 这次观察余数细节
- 有三种取整方法
- 向上天花板
- 向下地板
- 四舍五入
- 整除取余数用的都是向下地板法
- 但有时候会出某些错误
- 如果不用整除的话会如何呢?
- 不用整除的话
- 商很可能是一个小数
- 不用整除的话
-
那这小数到底是怎么存成0101二进制的呢?🤪
-
下次再说 👋