在python中想搞清楚取余就要先搞清楚整除
公司專注于為企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設計、微信公眾號開發(fā)、電子商務商城網(wǎng)站建設,微信平臺小程序開發(fā),軟件按需策劃設計等一站式互聯(lián)網(wǎng)企業(yè)服務。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務。
因為在python中取余遵循
a % b = a - (a // b) * b
那么
r = m // n, 而且始終取下, 即math.floor(r),且同號正, 異號負, 5 // -3 = -2, 5 // 3 = 1
那么, 令r = floor(a // b)
a 0, b 0, a - (a // b) * b = a - {取下值的正數(shù), 故a r * b} * b = 正數(shù)
a 0, b 0, a - (a // b) * b = a - {取下值的負數(shù), 故a r * b} * b = 負數(shù)
a 0, b 0, a - (a // b) * b = a - {取下值的負數(shù), 故a r * b} * b = 正數(shù)
a 0, b 0, a - (a // b) * b = a - {取下值的正數(shù), 故a r * b} * b = 負數(shù)
所以, 取余和被除數(shù)有關
python中取余%
python中的整除 // 中的坑
PYTHON中三種取整函數(shù)(// int round)的區(qū)別
當Python的取余操作涉及負數(shù)時,會產(chǎn)生很神奇的現(xiàn)象:
經(jīng)過百度找到[1],得到取余操作為:
但是這并不能解釋為什么會有兩種絕對值,于是又去搜了一下整除操作
在經(jīng)過百度找到[2]與[3],得知Python中的幾種取整操作:
對于負數(shù)表現(xiàn)為下:
將 % 之前的數(shù)稱為 被取余數(shù) ,之后的數(shù)稱為 取余數(shù) ,只考慮 除不盡 時,則有:
性質(zhì)一:
性質(zhì)二:
設
分別考慮 a 與 n 同號或異號時,均有:
故:
沿用性質(zhì)二,設
且有
則有
(除不盡情況下)
有了以上結論,我們就可以口算得到結果:
有了以上的值,再根據(jù) 的符號確定正負
python中獲得除法運算的余數(shù)使用%內(nèi)置運算符即可,例如求10除以3的余數(shù),使用以下表達式:
10%3,其結果為1。
python中 %是取模 - 返回除法的余數(shù),b % a 輸出結果 0? 。
擴展資料
python常見的預算符號介紹:
+ ? ?加 - 兩個對象相加 ? ?a + b 輸出結果 30 ?
- ? ?減 - 得到負數(shù)或是一個數(shù)減去另一個數(shù) ? ?a - b 輸出結果 -10 ?
* ? ?乘 - 兩個數(shù)相乘或是返回一個被重復若干次的字符串 ? ?a * b 輸出結果 200 ?
/ ? ?除 - x除以y ? ?b / a 輸出結果 2 ??
% ? ?取模 - 返回除法的余數(shù) ? ?b % a 輸出結果 0 ??
** ? ?冪 - 返回x的y次冪 ? ?a**b 為10的20次方, 輸出結果 100000000000000000000 ?
數(shù)學課本中沒有這種運算。
預備知識:這分為向上取整、向下取整、向零取整。
首先必須知道 x%y等價于x-(( x//y ) * y ) ,這就是一個公式??! 這個x//y意思是x對y取整
python中(是向下取整,即向更小的數(shù)取整數(shù)):10//3相當于10對3取整:
10?3=3.333...故向下取整取3即10//3=3
那么10//-3結果計算方式也是這樣:
10?(-3)=-3.333...向下取整取-4即10//-3=-4(-10//-3=-4)
要知道求余數(shù)必須先了解取整,下面看你的問題:按照剛才的公式
10%-3=10-【(10//-3)* (-3)】=10-【(-4)*(-3)】=10-12=-2
故10%-3=-2
類似的-10%-3=-1也是如此得來!
不同的環(huán)境下有著不同的規(guī)則,不過大體的過程是與上面是一樣的。