1. 程式人生 > >python中的float除法和整除法

python中的float除法和整除法

從python2.2開始,便有兩種除法運算子:"/"、"//"。兩者最大區別在:

  1. python2.2前的版本和python2.2以後3.0以前的版本的預設情況下,"/"所做的除法是以一種兩個數或者多個數出現一個浮點數結果就以浮點數的形式表示,即float除法
  2. "//"所做的除法則不相同,"//"不管兩者出現任何數,都以整除結果為準,不對小數部分進行處理,直接拋棄,也就是整除法

以下是筆者在編譯器測試的資料,測試的版本是python2.7

關於"/":

>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

由以上的例子我們可得出,只要除數中有一個數是浮點數,那麼得到的結果也是浮點數

以下是關於"//":

>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

由以上的例子,我們可以看出,兩個整型相除,得到的還是整型,但是。如果一個浮點數除以一個非浮點數得到的還會是一個浮點數,但是,計算的結果卻是忽略小數部分,運算的結果類似兩個整型相除,但是得到一個浮點數。另外"//"對於兩個浮點數也是不例外的。

如何讓"/"和"//"進行分工

在預設情況下,這兩種運算子有很大的重疊地方,比如,當兩個數都是整數的時候,兩者的運算結果是沒有區別的。如果想在python中讓這兩種有一個明確的分工。即"/"可以用於float除法,"//"用於整除法,我們可以在程式開始的時候做以下宣告:

from __future__ import division

聲明後測試的結果(以下測試的版本是python2.7)

>>> from __future__ import division
>>> 3/2
1.5
>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3.0/2.0
1.5
>>> 3//2
1
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
>>> 3//2.0
1.0
>>> -11/2
-5.5

以上,我們可以知道,做這個宣告以後,"/"進行的將是float除法而不是整除法。

還需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模組,就算分子分母都是int,返回的也將是浮點數

相關推薦

pythonfloat除法除法

從python2.2開始,便有兩種除法運算子:"/"、"//"。兩者最大區別在: python2.2前的版本和python2.2以後3.0以前的版本的預設情況下,"/"所做的除法是以一種兩個數或者多個數出現一個浮點數結果就以浮點數的形式表示,即float除法 "//"所做的除法則不相同,"//"不管兩者出現任

python的listarray的不同之處 及轉換

索引查找 tex style best col 移除 b- 索引 nump python中的list和array的不同之處list是列表,可以通過索引查找數值,但是不能對整個列表進行數值運算In [96]: b=[1,2]In [97]: b[1]Out[97]: 2In

Python使用listtuple

但是 9.png ins 並不是 括號 獲得 個數 exe 一個 list: Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。 比如,列出班裏所有同學的名字,就可以用一個list表示: 變量classmates就

python的xlrdxlwt模塊

.sh program i+1 demo 計算 一個 自動 創建 ++ Python中xlrd和xlwt模塊使用方法 本文主要介紹可操作excel文件的xlrd、xlwt模塊。其中xlrd模塊實現對excel文件內容讀取,xlwt模塊實現對excel文件的

Python的分片索引方法

python分片和索引本章淺寫 字符串的分片 和索引分片分片就是給定義的字符串中分離出部分內容字符串的分片和索引取第5位字符的值為e註意 給出一個字符串,可輸出任意一個字符,也可從後往前取,是從-1開始的負數; string[0]代表第一個字符,string[-1]為最後一個字符,空格也算一個字符; aa =

Python函數方法的區別

ini import ins function cti body itl 一個 object 1、函數要手動傳self,方法不用傳self 2、如果是一個函數,用類名去調用,如果是一個方法,用對象去調用 舉例說明: class Foo(object): d

pythonjson.dump() json.dumps() 有那些區別?

其他 reading 如果 data logs with open 序列 pos cme 以下內容摘自:《Python Cookbook》 json 模塊提供了一種很簡單的方式來編碼和解碼JSON數據。 其中兩個主要的函數是 json.dumps() 和 json.load

Python私有方法私有屬性

Python 私有方法 私有屬性 1.私有方法和私有屬性私有方法只能在類內部被調用,不能被對象使用私有屬性只能在類內部使用,不能被對象使用 私有屬性只能在類內部使用,對象不能使用,但是,我們可以通過在類內部定義公有方法對私有屬性進行調用或修改,然後對象在調用這個公有方法使用。###私有屬性和私有方

Python的iterableiterator

下標 with self. 條件 叠代 情況下 item 遍歷 def 參照官方文檔: 1 iterable是一個能返回它的成員的對象。包括sequence types(list,str,tuple) and not-sequence types(dict, file ob

python的類對象

font end 身高 AS elf span 如果 def 類實例化 類和對象 1. 類和對象和概念 類:共性事物的抽象,是對某一類具有共同事物的描述,是具有相同屬性和方法的集合 對象:類的實例,是共性事物的一個體現,是這類事物中的每個個體 2. 總結: 類是對象的模

Python 的 classmethod staticmethod

original Go got typeerror print ini 靜態 main method 類中最常用的方法是實例方法, 即通過通過實例作為第一個參數的方法。 舉個例子,一個基本的實例方法就向下面這個: class Kls(object): def

pythonsuper().__init__類名.__init__的區別

ini 類方法 tro 區別 算法 繼承 應該 per 類的方法 super().__init__相對於類名.__init__,在單繼承上用法基本無差 但在多繼承上有區別,super方法能保證每個父類的方法只會執行一次,而使用類名的方法會導致方法被執行多次 多繼承時,使用

Python的列表元組

() 逗號 包含 添加 是什麽 ear 2.3 元組 不可變 1. 列表(list)   以[]括起來,各元素之間用","進行分隔,可以存放各種數據類型,   1.1 索引和切片     和字符串一樣,列表也是可叠代對象,所以也有索引,可以進行切片     索引也是從0開始

如何理解IEEE 754標準對Javafloatdouble值的規定

rac tro zh-cn 分享圖片 編號 如何 ins font 指數 在Java語言中,我們可以使用float和double這兩種基本數據類型來表示特定的數據。 這兩種數據類型,本質上是浮點數(floating-point number),浮點是一種對於實數的近似值數值

Python關於splitsplitext的差別運用

world spa 完整 過程 bubuko 遍歷 pan 搜索字符串 pat 在使用Python的過程中,在處理字符串的時候會遇到split()和os.path.split()兩個函數,他們的主要區別可以概括為一個從前往後搜索字符串,後者則是從後往前搜索 ‘.‘(reve

python 的__str__ __repr__方法

創建對象 交互 以及 程序 通過 統一 內部 cal Language 看下面的例子就明白了 class Test(object): def __init__(self, value=‘hello, world!‘): self.data = val

Python的 Map Reduce

imp func turn 學習 for 就是 函數 依次 每一個 03 Map map()傳入的第一個參數是f,map將f依次作用到序列的每個元素,並把結

關於python的is==的區別

效率 什麽 比較 == 操作 切片 har none 人的 在 Python 中會用到對象之間比較,可以用 ==,也可以用 is 。但是它們的區別是什麽呢? is 比較的是兩個實例對象是不是完全相同,它們是不是同一個對象,占用的內存地址是否相同。萊布尼茨說過:“世界上沒

淺析Python深拷貝淺拷貝

int lis end 四種 都是 變量 內存空間 string -- 按照以下不同情況,在IDE中逐個解除註釋,就明白了 import copy """ 第一種情況,不可變類型變量,都是引用 """ # a = 1 # a = (11, 222, 333) # a =

pythona+=aa=a+a的區別

tuple 圖片 影響 變量 9.png 更改 .com fonts 自身 += 是 + 的一種升級版本, 具有能把執行後的結果再寫回傳遞來的變量本身的功能, 可變變量自身有比不可變變量多一個魔法方法 _iadd_, += 操作調用 _iadd_方法,沒有該方法時,再嘗試調