python是一种简单易学且功能壮大的编程说话,它具有白话化的酿成体例,深受大师喜爱。跟着人工智能的成长,python越来越受大师喜爱。在利用python编程的过程中我们总会碰到各类各样的问题,可是我们总会找到解决的方案的。例如下面的这个问题,若何利用python的内置函数divmod()。
divmod()函数可以用来求a对b取余的商和余数。它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对整型和浮点数都可以操作,这里我们可以看到python对浮点数是近似处置,divmod(5.2,1.2)应该为(4,0.4)
那么a到底是一个什么类型呢?用小括号包含着,我猜应该是tuple。
用>>> type(a)
<class 'tuple'>
号令检测一下。公然准确
老方式,用>>> help(divmod)
Help on built-in function divmod in module builtins:
divmod(x, y, /)
Return the tuple (x//y, x%y). Invariant: div*y + mod == x.
来查询divmod的帮忙文档
>>> divmod(5.2,2)
(2.0, 1.2000000000000002)
>>> divmod(1+2j,2)
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
divmod(1+2j,2)
TypeError: can't take floor or mod of complex number.
>>>
a和b可所以夹杂的浮点数和整数,成果为两个浮点数。可是a和b都不克不及是复数,因为不克不及对复数取floor和mod。
对于夹杂操作数类型,合用双目算术运算符的法则。对于整数,成果和 (a // b, a % b) 一致。对于浮点数,成果是 (q, a % b) ,q 凡是是 math.floor(a / b) 但可能会比 1 小。在任何环境下, q * b + a % b 和 a 根基相等。我们写了一些代码来测试看看。
若是 a % b 非零,它的符号和 b 一样,而且 0 <= abs(a % b) < abs(b) 。对于负数这个还蛮考验人的。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!