Python3 divmod() 函数

Python3 内置函数 Python3 内置函数

Python divmod() 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。

在 python 3.x 版本该函数不支持复数。

函数语法

divmod() 函数接受两个参数,通常是两个数字,并返回一个包含两个值的元组。第一个值是第一个参数除以第二个参数的商(即整数部分),第二个值是余数。

divmod(a, b)

参数说明:

  • a: 数字,非复数。
  • b: 数字,非复数。

如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)

如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b),q 通常是 math.floor(a / b),但也有可能是 1 ,比小,不过 q * b + a % b 的值会非常接近 a。

如果 a % b 的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)。

实例

>>> divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(8, -2)
(-4, 0)
>>> divmod(3, 1.3)
(2.0, 0.3999999999999999)

divmod() 函数的应用场景

divmod() 在处理时间转换、分页计算等场景中非常有用。

1、时间转换 例如,将总秒数转换为小时、分钟和秒:

实例

total_seconds = 3661
hours, remainder = divmod(total_seconds, 3600)
minutes, seconds = divmod(remainder, 60)
print(f"{hours}小时 {minutes}分钟 {seconds}秒")  # 输出:1小时 1分钟 1秒

2、分页计算 在分页系统中,divmod() 可以用来计算总页数和最后一页的记录数:

实例

total_items = 101
items_per_page = 10
pages, remainder = divmod(total_items, items_per_page)
if remainder:
    pages += 1
print(f"总页数:{pages}")  # 输出:总页数:11

divmod() 函数的注意事项

divmod() 函数的第二个参数不能为 0,否则会引发 ZeroDivisionError 异常。

divmod() 函数返回的商和余数的类型取决于输入参数的类型。如果输入参数是整数,则返回的商和余数也是整数;如果输入参数是浮点数,则返回的商和余数也是浮点数。

Python3 内置函数 Python3 内置函数