Python 中的向上取整除法
Vaibhav Vaibhav
2023年10月10日
向上取整除法返回大于或等于当前答案或商的最接近整数。在 Python 中,我们有一个运算符 //
用于向下取整除法,但不存在用于向上取整除法的运算符。本文将讨论我们在 Python 中执行向上取整除法的不同方式。
在 Python 中使用 //
运算符进行向上取整除法
我们可以使用 so math 和 floor Division //
在 Python 中执行向上取整除法。参考以下代码。
def ceil(a, b):
return -1 * (-a // b)
print(ceil(1, 2))
print(ceil(5, 4))
print(ceil(7, 2))
print(ceil(5, 3))
print(ceil(121, 10))
输出:
1
2
4
2
13
我们所做的事情如下。
-a // b
将返回相同的答案,但与a // b
的符号相反。- 因为在负数方面,
-a
大于-(a + 1)
,其中a
是一个正数,//
运算符将返回一个略小于实际答案的整数。例如,如果正常除法的答案是-1.25
,则返回的下限值将为-2
(最接近-1.25
的最小整数)。 - 通过将
-1
与(-a // b)
的中间答案或结果相乘,我们将得到具有预期符号的答案。返回值本质上是向上取整除法的结果。
在 Python 中使用 math.ceil()
函数进行向上取整除法
Python 有一个 math
包,里面有很多执行数学运算的函数和实用程序。一个这样的函数是 ceil()
函数。此函数返回传递数字的上限值。例如,如果我们将 2.3
传递给这个函数,它将返回 3
。我们将正常除法的结果传递给该函数并返回其 ceil 值。有关更多示例及其用法,请参阅以下代码。
from math import ceil
print(ceil(1 / 2))
print(ceil(5 / 4))
print(ceil(7 / 2))
print(ceil(5 / 3))
print(ceil(121 / 10))
输出:
1
2
4
2
13
作者: Vaibhav Vaibhav