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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!