divmod() 与复合运算
1. divmod() 函数
divmod(被除数, 除数) 把整除和取余合并成一步。
返回一个包含两个元素的元组:第一个是整除的商,第二个是取余的余数。
2. divmod() 与整除、取余的等价关系
divmod(a, b)的商等于a//b,余数等于a%b。
三者关系满足:被除数等于除数乘以商再加余数。
3.用两个变量接收divmod()
用多重赋值可以直接把商和余数分别存入两个变量,
第一个变量接收商,第二个接收余数。
写法为商, 余=divmod(a, b)。
3.divmod() 的参数限制
除数不能为零,否则报ZeroDivisionError。
两个参数通常用于整数,也可以是浮点数。
4.复合运算的优先级
复合运算中优先级从高到低为:括号 → 幂运算 → 乘、除、整除、取余 → 加、减。
同一层级从左到右计算,只有幂运算从右向左结合。
5.divmod() 判断奇偶
用divmod(数, 2) 得到的余数判断:
余数为 1 是奇数,余数为 0 是偶数。与用 % 取余完全等价。
6.divmod()分解时间
用divmod()配合60和24可以分解秒数为天、时、分、秒。
每次用商继续 divmod(),得到的余数从低到高分别是秒、分、时,最后的商是天数。
7.divmod()分解数字各位
用divmod(数, 10)可分离出个位和剩余高位,继续对商做divmod(数, 10) 可依次得到十位、百位等。与整除和取余配合使用效果相同。