python中numeric_Python中的Numeric
整型Integer
在Python2.X中,Integer有兩種類型,一種是32bit的普通類型,一種是精度無限制的long類型,在數字后面標識l或者L來標識long類型,并且,當32bit發生overflow無法表示時,會自動轉換成long類型;
在Python3.X中,Integer只有一種類型,就是long類型,因此,后面的l或者L標識就可以不用寫了
浮點數Float
在標準的CPython中,浮點數就是以double類型來實現的,這里需要注意的是,當一個整型與浮點數進行運算的時,結果是什么類型呢?答案是浮點類型。在進行運算時,Python會先將操作數向上轉換為更為復雜的類型,然后進行計算。在Python中,浮點數類型比Integer類型復雜,而復數Complex比浮點數復雜(如果把Decimal和Fraction考慮在內,那么Decimal和Fraction比Integer復雜,同時浮點數比Decimal和Fraction復雜,而Decimal和Fraction兩者是不能一起進行運算的,Python會報錯)
定點數Decimal
1 定點數的生成
定點數由Decimal類生成:
from decimal import Decimal
Decimal("0.1") + Decimal("0.10") + Decimal("0.2")
#運行結果為Decimal("0.40")
在上述例子中,Decimal運算會自動進行精度轉換,運算結果的精度和運算項中,精度最大的項一致。
在Python2.7,Python3.X中,還可以從浮點數生成定點數:
Decimal(0.1) + Decimal(0.1) + Decimal(0.1) - Decimal(0.3)
#運算結果:Decimal('2.775557561565156540423631668E-17')
由于浮點數的表示問題,最后可能會生成一個精度很大的定點數,為了避免這種情況,可以手動指定定點數的精度
2 定點數的精度
定點數的默認精度是28位,可以手動進行設置,并且一旦設置,后續所有在當前線程中創建的定點數精度都一樣,設置精度的方法就是使用decimal.getcontext方法:
#設置精度前
decimal.Decimal(1) / decimal.Decimal(7)
####運行結果
####Decimal('0.1428571428571428571428571429')
#設置精度后
decimal.getcontext().prec = 4
decimal.Decimal(1) / decimal.Decimal(7)
####運行結果
####Decimal('0.1429')
有理數Fraction
1 有理數的生成
有理數由Fraction類生成:
from fractions import Fraction
Fraction(1, 3) + Fraction(1, 3)
#運行結果Fraction(2, 3)
有理數同樣也可以由浮點數字符串生成:
Fraction("1.333")
#運行結果Fraction(1333, 1000)
2 浮點數轉換為有理數
浮點數轉換為有理數的時,可能會有精度的丟失,這時,可以設置分子的最大值,從而產生我們想要的結果
a = (4.0 / 3).as_integer_ratio()
a = Fraction(*a)
#運行結果為Fraction(22517998136852479, 13510798882111488)
a.limit_denominator(10) #設置分子的最大值
#運行結果為Fraction(4, 3)
Boolean
Python中的Boolean類型bool只包含兩個值True和False,True和False本質上就是1和0,但它們同時也是bool類型的兩個實例,而bool類型是int類型的子類,所以會有如下的現象:
isinstance(True, int)
#運行結果True
True == 1
#運行結果True
True is 1
#運行結果False
True + 4
#運行結果5
python中,numeric(數字類型)和integer(整型)的區別
說明: 在今天做int實現的過程中,官方函數的解釋是將numeric轉換為integer,就突然不明白,兩個有啥區別. numeric-數字類型包括: int,float,bool,complex i ...
Python::re 模塊 -- 在Python中使用正則表達式
前言 這篇文章,并不是對正則表達式的介紹,而是對Python中如何結合re模塊使用正則表達式的介紹.文章的側重點是如何使用re模塊在Python語言中使用正則表達式,對于Python表達式的語法和詳細 ...
Python中的內置函數
2.1 Built-in Functions The Python interpreter has a number of functions built into it that are alway ...
Python中異常(Exception)的總結
Python中的異常處理 異常處理的語句結構 try: #運行try語句塊,并試圖捕獲異常 except :
[轉]Python中的矩陣轉置
Python中的矩陣轉置 via 需求: 你需要轉置一個二維數組,將行列互換. 討論: 你需要確保該數組的行列數都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...
【轉載】python中not,and,or的優先級問題及用法
作業: >>> print(5<4 or 3)3>>> print(2>1 or 6)True>>> print(5>1 and ...
Python中模塊的發布與安裝
模塊(Module) Python中有一個概念叫做模塊(module),這個和C語言中的頭文件以及Java中的包很類似,比如在Python中要調用sqrt函數,必須用import關鍵字引入math這個 ...
對于Python中回調函數的理解
關于回調函數,網上有很多說明和各種解釋,多數在嘗試用語言描述.我認為,如果對各個角色之間的關系不清楚,如果沒有相關的編程需求,那么語言便非常無力,很難理解. 這是360百科的解釋: 在計算機程序設計中 ...
Python中的基礎數據類型
Python中基礎數據類型 1.數字 整型a=12或者a=int(2),本質上各種數據類型都可看成是類,聲明一個變量時候則是在實例化一個類. 整型具備的功能: class int(object): & ...
隨機推薦
“error LNK2019: 無法解析的外部符號”之分析
最近在用VS 2008開發,初學遇到不少問題,最頭疼的問題之一就是:LNK2019. 百度一下講的并不夠全面,反正都沒解決我的問題. error LNK2019問題在VC 6.0中是error LNK ...
Eclipse全面提速小技巧
轉自:http://rongmayisheng.com/post/eclipse%E5%85%A8%E9%9D%A2%E6%8F%90%E9%80%9F 歡迎關注我的社交賬號: 博客園地址: http ...
java并發包分析之———ConcurrentSkipListMap
一.前言 concurrentHashMap與ConcurrentSkipListMap性能測試 在4線程1.6萬數據的條件下,ConcurrentHashMap 存取速度是ConcurrentSki ...
c# 虛函數 ,抽象類
---抽象類 class Program { static void Main(string[] args) { Rectangle r = , ); double a = r.area(); Con ...
mac shell 獲取ip,自動啟動文件http服務
因為工作原因,時常有文件傳輸需求. rz.nc.rsync都用過,各有各的好處. 但相對的,向別處推文件時總有各種麻煩,尤其是在給同事發送文件時. 然后就想到了提供http服務. 在環境變量中定義別名 ...
[Laravel] 01 - Love beautiful code? We do too.
前言 一.良心資料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...
刪除oracle 表中重復數據sql語句、保留rowid最小的一條記錄
delete from tablename a where rowid > ( select min(rowid) from table_name b where b.id = a.id and ...
Qt的四個常見的圖像疊加模式
Qt的QPainter::CompositionMode提供了多種圖像疊加的模式.常見的有QPainter::CompositionMode_SourceOver,?QPainter::Composi ...
C++之參數總結
函數的形參為函數提供了已命名的局部存儲空間,它是在函數的形參表中定義的,并由調用函數時傳遞給函數的實參初始化,而形參的 初始化與變量的初始化一樣,如果形參具有非引用類型,則復制實參的值,如果形參為引用 ...
SQSERVER--函數、開窗函數,-特殊的內容 (for xml path )
1.STUFF SQL Server之深入理解STUFF sql stuff函數用于刪除指定長度的字符,并可以在制定的起點處插入另一組字符.sql stuff函數中如果開始位置或長度值是負數,或者如果 ...
總結
以上是生活随笔為你收集整理的python中numeric_Python中的Numeric的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: power python_在 Power
- 下一篇: futuretask java 并发请求