日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...

發(fā)布時(shí)間:2023/12/2 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用一個(gè)對另一個(gè)有好處嗎?在Python2中,它們似乎都返回相同的結(jié)果:

>>> 6/3

2

>>> 6//3

2

請參考整數(shù)除法的問題,因?yàn)橐肓?/運(yùn)算符進(jìn)行整數(shù)除法。

在python 3.0中,5 / 2將返回2.5,5 // 2將返回2。前者是浮點(diǎn)除法,后者是樓層除法,有時(shí)也稱為整數(shù)除法。

在2.x行中的python 2.2或更高版本中,整數(shù)沒有區(qū)別,除非執(zhí)行from __future__ import division,這會導(dǎo)致python 2.x采用3.0的行為。

無論未來進(jìn)口情況如何,5.0 // 2都將返回2.0,因?yàn)檫@是操作的樓層劃分結(jié)果。

您可以在https://docs.python.org/whatsnew/2.2.html pep-238-changing-the-division-operator上找到詳細(xì)的描述。

編輯:可以"修復(fù)"python 2.2以來的分割!(剛剛閱讀鏈接的政治公眾人物)

也包括python -Qnew。其他分區(qū)選項(xiàng):-Qold(默認(rèn))、-Qwarn、-Qwarnall。

值得指出的是,5.0 / 2在所有版本中都返回2.5,5 / 2.0也返回2.5。只有當(dāng)兩個(gè)操作數(shù)都是int時(shí),舊的行為才不同。

如果數(shù)字是負(fù)數(shù)呢?負(fù)整數(shù)的行為相同嗎?

@Aaronfranke,我用負(fù)數(shù)嘗試了//(樓層劃分)。這是結(jié)果。我定義了變量a=-50&b=-5,當(dāng)我使用print(a//b)時(shí),得到正值輸出(10)。當(dāng)我將var a或b更改為正值時(shí),則輸出為負(fù)值。我使用的是python 2.7.12版本。

@斯里尼瓦蘇,你的例子沒有幫助。最好是5/2(產(chǎn)生2)和-5/2(產(chǎn)生-3)。

在python 2.7.15中,//行為與python 3相同

這有助于澄清python 2.x行中,/既不是樓層劃分,也不是真正的劃分。目前接受的答案不清楚。當(dāng)兩個(gè)參數(shù)都為int時(shí),/是樓層劃分,但當(dāng)其中一個(gè)或兩個(gè)參數(shù)都為float時(shí),則是真正的劃分。

上面講的是更多的事實(shí),比公認(rèn)答案中的第二段更清楚。

//實(shí)現(xiàn)"樓層劃分",無論您的類型如何。所以1.0/2.0給0.5,但1/2、1//2和1.0//2.0都給0。

詳見https://docs.python.org/whatsnew/2.2.html pep-238-changing-the-division-operator

這是一個(gè)很好的答案。PEP鏈接很有用。另外,如果您不確定一元運(yùn)算符發(fā)生了什么,可以考慮使用math.floor()或math.fmod()。

/->浮點(diǎn)除法

//->樓層劃分

讓我們在python 2.7和python 3.5中都看到一些例子。

python 2.7.10與python 3.5

print (2/3) ?----> 0 ? ? ? ? ? ? ? ? ? Python 2.7

print (2/3) ?----> 0.6666666666666666 ?Python 3.5

python 2.7.10與python 3.5

print (4/2) ?----> 2 ? ? ? ? Python 2.7

print (4/2) ?----> 2.0 ? ? ? Python 3.5

現(xiàn)在,如果希望(在python 2.7中)與python 3.5中的輸出相同,可以執(zhí)行以下操作:

Python2.7.10

from __future__ import division

print (2/3) ?----> 0.6666666666666666 ? #Python 2.7

print (4/2) ?----> 2.0 ? ? ? ? ? ? ? ? ?#Python 2.7

其中,python 2.7和python 3.5中的樓層劃分沒有區(qū)別

138.93//3 ---> 46.0 ? ? ? ?#Python 2.7

138.93//3 ---> 46.0 ? ? ? ?#Python 3.5

4//3 ? ? ?---> 1 ? ? ? ? ? #Python 2.7

4//3 ? ? ?---> 1 ? ? ? ? ? #Python 3.5

這與int(5/2)相同嗎?

如果數(shù)字是負(fù)數(shù)呢?負(fù)整數(shù)的行為相同嗎?

正如大家已經(jīng)回答過的那樣,//是樓層劃分。

這一點(diǎn)之所以重要,是因?yàn)樵?.2版本(包括python 3.x版本)的所有python版本中,//都是明確的樓層劃分。

/的行為可以根據(jù)以下情況而改變:

是否導(dǎo)入激活的__future__(模塊本地)

python命令行選項(xiàng),可以是-Q old或-Q new。

>>> print 5.0 / 2

2.5

>>> print 5.0 // 2

2.0

還沒有意識到樓層劃分也適用于非整數(shù)。謝謝!

python 2.7和其他即將發(fā)布的python版本:

分部(/)

將左手操作數(shù)除以右手操作數(shù)

示例:4 / 2 = 2。

樓層劃分(//)

運(yùn)算數(shù)的除法,其結(jié)果是除掉小數(shù)點(diǎn)后位數(shù)的商。但是,如果其中一個(gè)操作數(shù)是負(fù)數(shù),則結(jié)果是向下的,即從零取整(向負(fù)無窮大取整):

示例:9//2 = 4和9.0//2.0 = 4.0、-11//3 = -4和-11.0//3 = -4.0。

/部門和//樓層部門的運(yùn)營商都以類似的方式運(yùn)營。

朝向無窮遠(yuǎn)和遠(yuǎn)離零是不同的東西。例如(-1.2和3.4):"地板"朝向負(fù)無窮(-2和3),"截?cái)?#34;朝向零(-1和3),"飽和"朝向零(-2和4),"天花板"朝向正無窮(-1和4)。

雙斜線//是樓層劃分:

>>> 7//3

2

方程的答案被四舍五入到下一個(gè)較小的整數(shù)或以0為小數(shù)點(diǎn)的浮點(diǎn)。

>>>print 5//2

2

>>> print 5.0//2

2.0

>>>print 5//2.0

2.0

>>>print 5.0//2.0

2.0

//是樓層劃分,它總是給出結(jié)果的整數(shù)樓層。另一個(gè)是"常規(guī)"部門。

在這個(gè)答案中,我不僅要告訴你答案,而且要告訴你//的好處。

大多數(shù)使用python的人必須知道python中的floor division操作符(//)。對于不知道的人,此運(yùn)算符在除法后返回下限值。例如:5/2=2.5,但5//2=2(2是2.5的下限值)

但是對于大于10^17的數(shù)字,除法運(yùn)算符的行為通常不正常。

x = 10000000000000000000006

if x / 2 == x // 2:

print("Hello")

else:

print("World")

對于上面的代碼,世界將被打印,而不是你好。這是因?yàn)?000000000000000006/2將返回5e+21,但100000000000000000000006//2將返回正確的答案5000000000000000000003。即使是int(100000000000000000006/2),也會返回500000000000000000000,這是不正確的。

因此,即使要分割大數(shù)字,也要使用//運(yùn)算符。

例如:如果要查找第一個(gè)10000000000000000000000000000010002數(shù)字的和,公式為:n(n+1)/2,則普通除法運(yùn)算符(/)會給出錯(cuò)誤的答案,但//運(yùn)算符會給出正確的答案。

以下是'/'和'/'之間的區(qū)別;我已經(jīng)在python 3.7.2中運(yùn)行了這些算術(shù)運(yùn)算。

>>> print 11 / 3

3.6666666666666665

>>> print 11 // 3

3

>>> print 11.3 / 3

3.7666666666666667

>>> print 11.3 // 3

3.0

這個(gè)答案是如何加上其他想法沒有涵蓋的內(nèi)容的?或者這個(gè)答案怎么比其他答案更好?

下面是程序的輸出。這解釋不了什么。

以上答案都很好。我想再加一點(diǎn)。在某些值中,這兩個(gè)值的商相同。在此之后,樓層劃分操作員(//工作正常,而不是劃分操作員(/工作)。

- > int(755349677599789174/2)

- > 377674838799894592 ? ? ?#wrong answer

- > 755349677599789174 //2

- > 377674838799894587 ? ? ?#correct answer

5.0//2導(dǎo)致2.0,而不是2,因?yàn)?/運(yùn)算符返回值的返回類型遵循python強(qiáng)制(類型轉(zhuǎn)換)規(guī)則。

python將較低的數(shù)據(jù)類型(integer)轉(zhuǎn)換為較高的數(shù)據(jù)類型(float),以避免數(shù)據(jù)丟失。

總結(jié)

以上是生活随笔為你收集整理的python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。