为了账号安全,请及时绑定邮箱和手机立即绑定

Python 的内置函数 divmod

标签:
Python 数学 API

Python 的内置函数 divmod

基本介绍

divmod() 是 Python 的一个内置函数,用于同时计算两个数的商和余数。它接受两个数字参数(可以是整数或浮点数),并返回一个包含商和余数的元组。

语法

divmod(a, b)

参数说明

  • a:被除数(dividend)
  • b:除数(divisor)

返回值

返回一个元组 (quotient, remainder),其中:

  • quotient 是商(即 a // b)
  • remainder 是余数(即 a % b)

使用示例

整数运算

>>> divmod(10, 3)
(3, 1)  # 10 ÷ 3 = 3 余 1

浮点数运算

>>> divmod(10.5, 3)
(3.0, 1.5)  # 10.5 ÷ 3 = 3.0 余 1.5

负数运算

>>> divmod(-10, 3)
(-4, 2)  # -10 ÷ 3 = -4 余 2

实现原理

divmod() 函数的底层实现实际上就是同时调用了 //% 运算符:

def divmod(a, b):
    return (a // b, a % b)

应用场景

时间转换

将秒数转换为小时、分钟和秒:

def convert_seconds(seconds):
    hours, remaining = divmod(seconds, 3600)
    minutes, seconds = divmod(remaining, 60)
    return hours, minutes, seconds

>>> convert_seconds(3661)
(1, 1, 1)  # 1小时1分钟1秒

坐标转换

将像素坐标转换为网格坐标:

def pixel_to_grid(pixel, grid_size):
    return divmod(pixel, grid_size)

>>> pixel_to_grid(150, 100)
(1, 50)  # 在100x100的网格中,150像素位于第1行第50列

金融计算

计算货币兑换:

def exchange_money(total, rate):
    return divmod(total, rate)

>>> exchange_money(100, 3.5)
(28.0, 2.0)  # 100元按3.5汇率可兑换28单位,剩余2元

注意事项

  1. 当除数为0时会引发 ZeroDivisionError 异常
  2. 对于复数,divmod() 函数不可用
  3. 对于浮点数运算,结果可能会有微小的精度误差

性能考虑

divmod() 通常比分别调用 //% 更高效,因为它在底层只需要执行一次除法运算。

相关函数

  • // 地板除运算符
  • % 取模运算符
  • math.fmod() 浮点数取模函数
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消