鍍金池/ 問答/Python/ 為什么Python2.7中 1/2 的結(jié)果為 0 ;或者說小于1的分?jǐn)?shù)都變成0了

為什么Python2.7中 1/2 的結(jié)果為 0 ;或者說小于1的分?jǐn)?shù)都變成0了?

python版本 :Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
pip: pip 9.0.1 from c:python27libsite-packages (python 2.7)

系統(tǒng) win10

圖片描述

【新手上路,請(qǐng)各位大牛多多提攜!】

回答
編輯回答
還吻

Python2版本里的/運(yùn)算結(jié)果取整數(shù),例如:

5 / 2 = 2;
2 / 3 = 0;

到了Python3里就變了;

5 / 2 = 2.5;
2 / 3 = 0.66...;

再有就是Python2Python3兩個(gè)版本有些地方差別還是比較大的,兩個(gè)版本不是兼容的,使用時(shí)注意區(qū)分Python的版本;

2017年5月1日 17:36
編輯回答
乖乖噠

因?yàn)槭莾蓚€(gè)整數(shù)計(jì)算除法。

>>>1.0/2.0  
0.5
2017年4月11日 12:31
編輯回答
舊顏

補(bǔ)充一些知識(shí)點(diǎn)。參考了《Python核心編程(第二版)》(2008)。

Python 2 中,執(zhí)行 1/2 返回結(jié)果 0 這是從 C 語言沿襲而來的。
對(duì)整數(shù)操作數(shù),會(huì)執(zhí)行“地板除”(floor division),取比商小的最大整數(shù)。例如 5 除以 2 等于 2.5,其中“2”就稱為商的“地板”,即“地板除”的結(jié)果。

#Python 2
>>> -5/2
-3
>>> 5/2
2

從Python 2.2 開始, 一個(gè)新的運(yùn)算符 // 已經(jīng)被增加進(jìn)來, 以執(zhí)行地板除: // 除法不管操作數(shù)何種數(shù)值類型,總是舍去小數(shù)部分,返回?cái)?shù)字序列中比真正的商小的最接近的數(shù)字。

除法運(yùn)算總是返回真實(shí)的商, 不管操作數(shù)是整數(shù)還是浮點(diǎn)數(shù)。在未來版本的 Python 中,這將是除法運(yùn)算的標(biāo)準(zhǔn)行為?,F(xiàn)階段通過執(zhí)行 from future import division 指令, 也可以做到這一點(diǎn)。

>>> from __future__ import division
>>>
>>> 1 / 2 # returns real quotient
0.5
>>> 1.0 / 2.0 # returns real quotient
0.5
2018年2月1日 12:08