Pythonクイズの回答

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 3.0//2
1.0
>>> 3.0.__floordiv__(2)
1.0
>>> 3.0/2
1.5
>>> 3.0.__div__(2)  # 3.0では__truediv__
1.5

強制型変換をまとめると以下の通り。

op int op int float op int (int op float) float op float
+ int float float
- int float float
* int float float
/ int float float
// int float float
op int op int float op int (int op float) float op float
+ int float float
- int float float
* int float float
/ float float float
// int float float

3.0では、int、floatの__div__はなくなり、__truediv__が追加された。intの__div__と__truediv__の違いは表の通りだと思うが、floatの__div__と__truediv__の違いがいまいち分からない。