Python中的取整、取余運(yùn)算方法
1.取整運(yùn)算
在Python中取整運(yùn)算的運(yùn)算符為//,且取整運(yùn)算的取整為向下取整,不進(jìn)行四舍五入
例:9//4=2,即9對(duì)4取整等于2
-9//-4=2,因?yàn)?9÷-4=2.25,取整為2
那么問(wèn)題來(lái)了,9//-4等于多少呢?
9//-4=-3,因?yàn)?÷-4應(yīng)該等于-2.25,那么對(duì)-2.25向下取整,應(yīng)該為-3,而不是-2,所以9//-4=-3
那么-9//4呢?
-9÷4也應(yīng)該等于-2.25,所以向下取整,得到-9//4=-3
總結(jié):
9//4=2
-9//-4=2
9//-4=-3
-9//4=-3
2.取余運(yùn)算
在Python中取余運(yùn)算的運(yùn)算符為%,取余的結(jié)果為,被除數(shù)整除除數(shù)后余下的數(shù)
例:9%4=1,即9對(duì)4取余為1,因?yàn)?÷4=2···1,即9除以4等于2余1,所以9%4=1
那么問(wèn)題又又又來(lái)了,-9%-4等于多少?9%-4等于多少?-9%4等于多少?
這是就要用到一個(gè)公式了,在Python中,余數(shù)的計(jì)算公式:a % b = a - a // b * b
即a對(duì)b取余的余數(shù) 等于 a減去 a先對(duì)b取整,再乘以b ,即為a對(duì)b取余的余數(shù)
那么-9%-4,就等于-9-(-9//-4*-4),等于-1,即-9%-4=-1
9%-4,就等于9-(9//-4*-4),等于-3,即9%-4=-3
-9%4,就等于-9-(-9//4*4),等于3,即-9%4=3
總結(jié):
9%4=1
-9%-4=-1
9%-4=-3
-9%4=3
Python 幾種取整的方法
數(shù)據(jù)處理是編程中不可避免的,很多時(shí)候都需要根據(jù)需求把獲取到的數(shù)據(jù)進(jìn)行處理,取整則是最基本的數(shù)據(jù)處理。取整的方式則包括向下取整、四舍五入、向上取整等等。
1、向下取整
向下取整直接用內(nèi)建的 int()
函數(shù)即可:
>>> a = 3.75 >>> int(a) 3
2、四舍五入
對(duì)數(shù)字進(jìn)行四舍五入用 round()
函數(shù):
>>> round(3.25); round(4.85) 3.0 5.0
3、向上取整
向上取整需要用到 math
模塊中的 ceil()
方法:
>>> import math >>> math.ceil(3.25) 4.0 >>> math.ceil(3.75) 4.0 >>> math.ceil(4.85) 5.0
4、分別取整數(shù)部分和小數(shù)部分
有時(shí)候我們可能需要分別獲取整數(shù)部分和小數(shù)部分,這時(shí)可以用 math
模塊中的 modf()
方法,該方法返回一個(gè)包含小數(shù)部分和整數(shù)部分的元組:
>>> import math >>> math.modf(3.25) (0.25, 3.0) >>> math.modf(3.75) (0.75, 3.0) >>> math.modf(4.2) (0.20000000000000018, 4.0)
有人可能會(huì)對(duì)最后一個(gè)輸出結(jié)果感到詫異,按理說(shuō)它應(yīng)該返回 (0.2, 4.0)
才對(duì)。這里涉及到了另一個(gè)問(wèn)題,即浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示,在計(jì)算機(jī)中是無(wú)法精確的表示小數(shù)的,至少目前的計(jì)算機(jī)做不到這一點(diǎn)。上例中最后的輸出結(jié)果只是 0.2 在計(jì)算中的近似表示。Python 和 C 一樣, 采用 IEEE 754
規(guī)范來(lái)存儲(chǔ)浮點(diǎn)數(shù),如果希望更詳細(xì)的了解這一點(diǎn)可以參考下面資料。
參考資料
為什么0.1+0.2=0.30000000000000004而1.1+2.2=3.3000000000000003?.
到此這篇關(guān)于Python中的取整、取余運(yùn)算的文章就介紹到這了,更多相關(guān)Python取整、取余運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python進(jìn)階collections標(biāo)準(zhǔn)庫(kù)使用示例詳解
這篇文章主要為大家介紹了python進(jìn)階collections標(biāo)準(zhǔn)庫(kù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Python幫你解決手機(jī)qq微信內(nèi)存占用太多問(wèn)題
你有沒(méi)有發(fā)現(xiàn)以前16G內(nèi)存也可以裝幾個(gè)游戲玩,現(xiàn)在128G的卻日常使用都不夠了?更不用說(shuō)裝什么游戲,這其實(shí)是軟件內(nèi)存占用過(guò)多導(dǎo)致的,今天我們用python來(lái)清理下2022-02-02TensorFLow 不同大小圖片的TFrecords存取實(shí)例
今天小編就為大家分享一篇TensorFLow 不同大小圖片的TFrecords存取實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Pytorch DataLoader 變長(zhǎng)數(shù)據(jù)處理方式
今天小編就為大家分享一篇Pytorch DataLoader 變長(zhǎng)數(shù)據(jù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python+Pygame實(shí)現(xiàn)之走四棋兒游戲的實(shí)現(xiàn)
大家以前應(yīng)該都聽(tīng)說(shuō)過(guò)一個(gè)游戲:叫做走四棋兒。直接在家里的水泥地上用燒完的炭火灰畫(huà)出幾條線,擺上幾顆石頭子即可。當(dāng)時(shí)的火爆程度可謂是達(dá)到了一個(gè)新的高度。本文將利用Pygame實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-07-07pytorch的backward()的底層實(shí)現(xiàn)邏輯詳解
自動(dòng)微分是一種計(jì)算張量(tensors)的梯度(gradients)的技術(shù),它在深度學(xué)習(xí)中非常有用,這篇文章主要介紹了pytorch的backward()的底層實(shí)現(xiàn)邏輯,需要的朋友可以參考下2023-11-11