python python除法取整數 py小數點兩位 - Python整數除法產生浮點數




2 Answers

看看PEP-238 :改變分區操作員

//運營商可以明確請求地板分區。

python3除法
Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2/2
1.0

這是打算? 我強烈記得早期版本返回int/int=int ? 我應該怎麼做,是否有新的分部操作員,或者我必須總是施放?




被接受的答案已經提到PEP 。 我只想為那些對正在發生的事情感興趣的人在幕後添加一個快速的背景,而不必閱讀整個PEP。

Python將運算符(如+-*/映射到特殊函數,例如a + b等同於

a.__add__(b)

關於Python 2中的劃分,默認情況下只有/哪些映射到__div__ ,結果取決於輸入類型(例如intfloat )。

Python 2.2引入了__future__特性division ,它通過以下方式改變了分區語義(TL; PEP 238的DR):

  • /映射到__truediv__ ,它必須“返回分區數學結果的合理近似值”(引自PEP 238)
  • //映射到__floordiv__ ,它應該返回/

在Python 3.0中,PEP 238的變化成為默認行為,Python的對像模型中沒有更多特殊的方法__div__

如果你想在Python 2和Python 3中使用相同的代碼

from __future__ import division

並堅持///的PEP 238語義。




Related