欢迎各位兄弟 发布技术文章
这里的技术是共享的
地板除
在 Python 中,// 表示整数除法(也叫地板除),它会返回两个数相除后的整数部分(直接向下取整),而丢弃小数部分。
示例解释:
python20 // 8
计算过程:
20 ÷ 8 = 2.5// 会取整数部分(直接截断小数),结果是 2。
(注意:如果是负数,// 会向负无穷方向取整,如 -20 // 8 = -3)
普通除法 (/):
返回浮点数结果,如 20 / 8 返回 2.5。
取余 (%):
返回余数,如 20 % 8 返回 4(因为 8 × 2 + 4 = 20)。
//?当你需要整除的整数结果时(如分页计算、数组分块等),// 比 / 更方便。
避免显式类型转换(如 int(20 / 8))。
pythonprint(20 // 8) # 输出 2 print(20 / 8) # 输出 2.5 print(20 % 8) # 输出 4
简单总结:// 是整除,/ 是精确除(浮点数),% 是取余。
天花板除
在 Python 中,天花板(向上取整)可以通过以下方式实现:
math.ceil()math.ceil(x) 函数会将 x 向上取整到最接近的整数(即“天花板”)。
示例:
pythonimport math print(math.ceil(2.3)) # 输出 3 print(math.ceil(-1.7)) # 输出 -1(向正无穷方向取整)
// 和 math.floor() 注意项// 是向下取整(地板除),所以对于负数,如果需要“向上取整”,可以用一些小技巧:
python# 计算 a 除以 b 的天花板(a 和 b 都是整数) ceil_div = -(-a // b)
示例:
pythona = 20 b = 8 print(-(-a // b)) # 输出 3 (因为 -(-20) // 8 → 20 // 8 → 2 + 1 = 3)
如果你想要 a / b 的向上取整数结果,也可以这样:
pythonceil_div = (a + b - 1) // b
例如:(20 + 8 - 1) // 8 等于 27 // 8 → 3(即 20 ÷ 8 向上取整)。
| 操作 | Python 写法 | 数学意义 | 示例(20 / 8) |
|---|---|---|---|
| 地板除(向下取整) | a // b | ⌊a/b⌋ | 2 |
| 天花板除(向上取整) | math.ceil(a / b) | ⌈a/b⌉ | 3 |
| 快速天花板除 | -(-a // b) 或 (a + b -1 ) // b | 相同效果 | 3 |
希望这能帮助你解决“天花板”问题! 🚀