一分鐘讓你徹底看懂Python中的//,?/,?%的作用和區(qū)別
前言
在python中,我們經(jīng)常需要對(duì)數(shù)字進(jìn)行一些基本的運(yùn)算,比如加、減、乘、除等。為了實(shí)現(xiàn)這些運(yùn)算,我們可以使用一些特殊的符號(hào),稱(chēng)為算術(shù)運(yùn)算符。
例如,我們可以用+號(hào)表示加法,用-號(hào)表示減法,用*號(hào)表示乘法,用/號(hào)表示除法等。這些運(yùn)算符都遵循一定的語(yǔ)法規(guī)則和優(yōu)先級(jí)順序,我們可以用它們來(lái)構(gòu)建復(fù)雜的數(shù)學(xué)表達(dá)式。
為//、/、%的區(qū)別
除了上面提到的四個(gè)基本的算術(shù)運(yùn)算符,python還提供了另外三個(gè)有用的運(yùn)算符://, /, %。它們分別表示整除、除法和取余。它們的作用和區(qū)別如下:
整除(//):整除運(yùn)算符返回兩個(gè)數(shù)字相除后的商的整數(shù)部分。例如,17 // 4 的結(jié)果是 4,因?yàn)?17 除以 4 的商是 4.25,而整數(shù)部分是 4。如果兩個(gè)數(shù)字中有一個(gè)是浮點(diǎn)數(shù)(小數(shù)),則返回的結(jié)果也是一個(gè)浮點(diǎn)數(shù),但是小數(shù)部分會(huì)被舍去。例如,17.0 // 4 的結(jié)果是 4.0,因?yàn)?17.0 除以 4 的商是 4.25,而小數(shù)部分被舍去后是 0。
除法(/):除法運(yùn)算符返回兩個(gè)數(shù)字相除后的商的精確值。無(wú)論兩個(gè)數(shù)字是什么類(lèi)型,返回的結(jié)果都是一個(gè)浮點(diǎn)數(shù)(小數(shù))。例如,17 / 4 的結(jié)果是 4.25,因?yàn)?17 除以 4 的商就是 4.25。如果兩個(gè)數(shù)字都是整數(shù),并且能夠整除,則返回的結(jié)果也是一個(gè)浮點(diǎn)數(shù),但是小數(shù)部分會(huì)是 0。例如,16 / 4 的結(jié)果是 4.0,因?yàn)?16 除以 4 的商是 4,而小數(shù)部分是 0。
取余(%):取余運(yùn)算符返回兩個(gè)數(shù)字相除后的余數(shù)。例如,17 % 4 的結(jié)果是 1,因?yàn)?17 除以 4 的余數(shù)是 1。如果兩個(gè)數(shù)字中有一個(gè)是浮點(diǎn)數(shù),則返回的結(jié)果也是一個(gè)浮點(diǎn)數(shù)。例如,17.5 % 4 的結(jié)果是 1.5,因?yàn)?17.5 除以 4 的余數(shù)是 1.5。
為什么需要整除、除法和取余
那么,為什么我們需要這三個(gè)運(yùn)算符呢?有哪些情況下我們會(huì)用到它們呢?下面舉幾個(gè)例子來(lái)說(shuō)明:
**計(jì)算商和余數(shù):**有時(shí)候,我們需要知道兩個(gè)數(shù)字相除后的商和余數(shù),比如在做分?jǐn)?shù)或者比例的計(jì)算時(shí)。我們可以用//和%這兩個(gè)運(yùn)算符來(lái)得到商和余數(shù),并且可以根據(jù)商和余數(shù)來(lái)還原原來(lái)的被除數(shù)。例如,如果我們知道 a // b = c 和 a % b = d,則我們可以推出 a = b * c + d。
**判斷奇偶性:**有時(shí)候,我們需要判斷一個(gè)數(shù)字是否是奇數(shù)或偶數(shù),比如在做一些邏輯或者編程題時(shí)。我們可以用%這個(gè)運(yùn)算符來(lái)判斷一個(gè)數(shù)字除以2的余數(shù),如果余數(shù)是0,則說(shuō)明這個(gè)數(shù)字是偶數(shù),如果余數(shù)是1,則說(shuō)明這個(gè)數(shù)字是奇數(shù)。例如,如果我們知道 n % 2 = 0,則我們可以推出 n 是一個(gè)偶數(shù)。
**轉(zhuǎn)換進(jìn)制:**有時(shí)候,我們需要將一個(gè)十進(jìn)制的數(shù)字轉(zhuǎn)換為其他進(jìn)制的數(shù)字,比如二進(jìn)制、八進(jìn)制或十六進(jìn)制等。我們可以用//和%這兩個(gè)運(yùn)算符來(lái)實(shí)現(xiàn)這個(gè)轉(zhuǎn)換,具體的方法是不斷地用目標(biāo)進(jìn)制的基數(shù)去除原來(lái)的數(shù)字,并將每次得到的余數(shù)作為新進(jìn)制的一位,直到商為0為止。例如,如果我們想將13轉(zhuǎn)換為二進(jìn)制,我們可以用以下的步驟:
用2去除13,得到商6和余數(shù)1,將余數(shù)1作為二進(jìn)制的最低位
用2去除6,得到商3和余數(shù)0,將余數(shù)0作為二進(jìn)制的次低位
用2去除3,得到商1和余數(shù)1,將余數(shù)1作為二進(jìn)制的次高位
用2去除1,得到商0和余數(shù)1,將余數(shù)1作為二進(jìn)制的最高位
將得到的四個(gè)余數(shù)從高到低拼接起來(lái),得到二進(jìn)制的結(jié)果1101。
如何使用整除、除法和取余
要使用//, /, %這三個(gè)運(yùn)算符,我們需要遵循一定的語(yǔ)法規(guī)則。具體如下:
語(yǔ)法:a // b, a / b, a % b
參數(shù):a和b是兩個(gè)數(shù)字,可以是整數(shù)或浮點(diǎn)數(shù)
返回值://運(yùn)算符返回一個(gè)整數(shù)或浮點(diǎn)數(shù),表示商的整數(shù)部分;/運(yùn)算符返回一個(gè)浮點(diǎn)數(shù),表示商的精確值;%運(yùn)算符返回一個(gè)整數(shù)或浮點(diǎn)數(shù),表示余數(shù)。
注意事項(xiàng):如果傳入的兩個(gè)參數(shù)長(zhǎng)度不一致,則返回的結(jié)果長(zhǎng)度與最短的參數(shù)相同;如果沒(méi)有傳入任何參數(shù),則返回一個(gè)空的結(jié)果。
案例應(yīng)用
案例一
# 定義兩個(gè)數(shù)字``a = 17``b = 4`` ``# 使用//運(yùn)算符計(jì)算商的整數(shù)部分,并打印結(jié)果``quotient = a // b``print(f'The quotient of {a} and is {quotient}')`` ``# 使用/運(yùn)算符計(jì)算商的精確值,并打印結(jié)果``exact_quotient = a / b``print(f'The exact quotient of {a} and is {exact_quotient}')`` ``# 使用%運(yùn)算符計(jì)算余數(shù),并打印結(jié)果``remainder = a % b``print(f'The remainder of {a} and is {remainder}')
案例二
# 定義一個(gè)數(shù)字``n = 42`` ``# 使用%運(yùn)算符計(jì)算n除以2的余數(shù),并賦值給m``m = n % 2`` ``# 判斷m是否等于0``if m == 0:` `# 如果等于0,說(shuō)明n是偶數(shù),并打印結(jié)果` `print(f'{n} is an even number')``else:` `# 如果不等于0,說(shuō)明n是奇數(shù),并打印結(jié)果` `print(f'{n} is an odd number')
案例三
# 定義一個(gè)十進(jìn)制數(shù)字``decimal = 13`` ``# 創(chuàng)建一個(gè)空字符串,用來(lái)存儲(chǔ)二進(jìn)制數(shù)字``binary = ''`` ``# 使用while循環(huán),當(dāng)decimal大于0時(shí)重復(fù)執(zhí)行``while decimal > 0:` `# 使用%運(yùn)算符計(jì)算decimal除以2的余數(shù),并將其轉(zhuǎn)換為字符串` `bit = str(decimal % 2)` `print(bit)` `#將余數(shù)添加到二進(jìn)制字符串` `binary=bit+binary` `#將decimal整除以2,繼續(xù)下一輪循環(huán)` `decimal//=2``print(f"十進(jìn)制數(shù){decimal}的二進(jìn)制表示為{binary}.")
總結(jié)
到此這篇關(guān)于Python中//, /, %作用和區(qū)別的文章就介紹到這了,更多相關(guān)Python中//, /, %作用和區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python一行代碼識(shí)別發(fā)票并保存Excel示例詳解
這篇文章主要為大家介紹了Python一行代碼識(shí)別發(fā)票并保存Excel示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python+Opencv實(shí)現(xiàn)計(jì)算閉合區(qū)域面積
這篇文章主要介紹了利用Python?Opencv計(jì)算閉合區(qū)域的面積的原理以及實(shí)現(xiàn)代碼,文中的講解詳細(xì)易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-03-03python socket網(wǎng)絡(luò)編程之粘包問(wèn)題詳解
這篇文章主要介紹了python socket網(wǎng)絡(luò)編程之粘包問(wèn)題詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04利用ImageAI庫(kù)只需幾行python代碼實(shí)現(xiàn)目標(biāo)檢測(cè)
這篇文章主要介紹了利用ImageAI庫(kù)只需幾行python代碼超簡(jiǎn)實(shí)現(xiàn)目標(biāo)檢測(cè)功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08python opencv 畫(huà)外接矩形框的完整代碼
這篇文章主要介紹了python-opencv-畫(huà)外接矩形框的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09python自動(dòng)化測(cè)試Data?Driven?Testing(DDT)用例解析
這篇文章主要為大家介紹了python自動(dòng)化測(cè)試Data?Driven?Testing(DDT)用例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09tensorflow學(xué)習(xí)教程之文本分類(lèi)詳析
初學(xué)tensorflow,借鑒了很多別人的經(jīng)驗(yàn),參考博客對(duì)評(píng)論分類(lèi)(感謝博主的一系列好文),本人也嘗試著實(shí)現(xiàn)了對(duì)文本數(shù)據(jù)的分類(lèi),下面這篇文章主要給大家介紹了關(guān)于tensorflow學(xué)習(xí)教程之文本分類(lèi)的相關(guān)資料,需要的朋友可以參考下2018-08-08