您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python中數字的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
數字
在Python中,數字并不是一個真正的對象類型,而是一組類似類型的分類。Python不僅支持通常的數據類型(整數和浮點數。),而且能夠通過常量去直接創建數字以及處理數字的表達式。
? 整數和浮點數
? 復數
? 固定精度的十進制數;
? 有理分數
? 集合
? 布爾類型
? 無窮的整數精度
? 各種數字內置函數和模塊。
數字常量:
數字 常量
123,-23,0,99999…… 整數(無窮大小)
1.23,1.,3.14e-10,4E210 浮點數
0o177,0x9ff,0b11000 Python3.0中的八進制、十六進制和二進制常量
3+4j,3j 復數產量
Python表達式操作符:
數字變量表達式:
? 變量在它第一次賦值時創建
? 變量在表達式中使用將被替換為它們的值
? 變量在表達式中使用之前必須已賦值
? 變量像對象一樣不需要在一開始進行聲明
>>> a=3 >>> b=4 >>> a,b (3, 4)
數字的轉換:
>>> int('100') #將數字從文本轉換為數字 100 >>> str(100) #將數字從數字轉換為文本 '100'
數字顯示格式:
>>> num=1/3.0 >>> num 0.3333333333333333 >>> >>> >>> >>> print(num) 0.3333333333333333 >>> >>> '%e'%num '3.333333e-01' >>> '%4.2f'%num '0.33' >>> '{0:4.2f}'.format(num) '0.33' >>>
數字比較:一般的和連續的
一般的比較操作數相對大小,并且返回一個布爾類型的結果。
>>> 1<2 True >>> >>> 2.0>=1 True >>> 2.0==2.0 True >>> 2.0!=2.0 False
連續比較:
>>> x=10 >>> y=20 >>> z=30 >>> >>> >>> x<y<z True >>> x<y>z False
獲取數字最大值和最小值的函數:
>>> max(x,y,z) 30 >>> min(x,y,z) 10 >>>
除法:
傳統除法、Floor除法和真除法:
傳統除法:
X / Y
傳統除法和真除法,在Python2.6及之前的版本中,這個操作對于整數部分會省去小數部分,對于浮點數會保持小數部分。在Python3.0版本中為真除法(無論任何類型都會保持小數部分)。
Floor除法:
X // Y
在Python2.2中新增操作,在Python2.6和Python3.0均能使用。操作不考慮操作對象類型,總會省略結果的小數部分,剩下最小的能整除的整數部分。
在Python3.0中取消了傳統除法,/和//分別實現真除法和floor除法。
>>> 10 / 4 2.5 >>> >>> 10 // 4 2 >>> >>> 10 / 4.0 2.5 >>> >>> 10 // 4.0 2.0 >>> >>> 5 / 2.0 2.5 >>> 5 // 2.0 2.0 >>> >>> 5 / -2.0 -2.5 >>> 5 // -2.0 -3.0 >>>
整數精度:
Python3.0整數支持無窮的大小,Python2.6長整數在末尾顯示一個“L”。
復數:
復數分為兩個浮點數(實部和虛部)并在虛部增加了j或J的后綴。可以把非零實部的復數寫成由+連接起來的兩部分。
>>> >>> 1j*1j (-1+0j) >>> 2+3j*3 (2+9j) >>> (5+6j)**2 (-11+60j) >>>
十六進制、八進制和二進制常量
>>> >>> 0o1,0o20,0o377 (1, 16, 255) >>> >>> 0x01,0x10,0xFF (1, 16, 255) >>> >>> 0b1,0b10000,0b11111111 (1, 16, 255) >>> >>> >>> oct(64),hex(64),bin(64) ('0o100', '0x40', '0b1000000') >>>
Int將數字按照進制進行轉換:
>>> >>> int('64') 64 >>> int('100',8) 64 >>> int('40',16) 64 >>> int('1000000',2) 64 >>> >>> int('0o100',8),int('0x40',16),int('0b1000000',2) (64, 64, 64)
Eval函數:
>>> >>> eval('64'),eval('0o100'),eval('0x40'),eval('0b1000000') (64, 64, 64, 64) >>>
通過字符調用轉換進制:
>>> '{0:o},{1:x},{2:b}'.format(64,64,64) '100,40,1000000' >>> >>> >>> '%o,%x,%X' % (64,255,255) '100,ff,FF' >>>
位操作
把整數當作二進制位串進行位移及布爾操作。
>>> >>> x=1 >>> >>> x<<1 2 >>> x<<2 4 >>> x<<3 8 >>> y=8 >>> >>> y>>1 4 >>> y>>2 2 >>> y>>3 1 >>> y>>4 0 >>> y>>5 0 >>> >>> >>> x=0b0001 >>> >>> x 1 >>> bin(x<<1) '0b10' >>> bin(x<<2) '0b100' >>> bin(x<<3) '0b1000' >>> bin(x<<4) '0b10000' >>> >>> >>> bin(x | 0b0010) '0b11' >>> >>> >>> bin(x ^ 0b0010) '0b11' >>> >>> bin(x & 0b0010) '0b0' >>>
顯示數字二進制的位數:
>>> X=100 >>> >>> bin(X),X.bit_length() ('0b1100100', 7) >>> >>> Y=101 >>> >>> bin(Y),Y.bit_length() ('0b1100101', 7)
小數
小數是固定精度的浮點值。
小數對象:小數是通過導入decimal模塊調用函數后創建的。擁有固定的位數和小數點。
浮點數字缺乏精確性,因為存放數值的空間有限。
>>> >>> 0.1+0.1+0.1-0.3 5.551115123125783e-17 >>> >>> >>> from decimal import Decimal >>> >>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3') Decimal('0.0') >>>
當小數對象中的字符串小數位數多時,會自動調整。
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.100') - Decimal('0.3') Decimal('0.000')
全局精度設置:
>>> >>> import decimal >>> >>> decimal.Decimal(1) / decimal.Decimal(7) Decimal('0.1428571428571428571428571429') >>> >>> decimal.getcontext().prec = 4 >>> >>> decimal.Decimal(1) / decimal.Decimal(7) Decimal('0.1429') >>>
分數
分數在Python中以類似小數的方式使用,也存在于模塊中,導入其構造函數并傳遞一個分子和分母就可以產生一個分數。
>>> >>> from fractions import Fraction >>> >>> x=Fraction(1,3) >>> y=Fraction(4,6) >>> >>> x Fraction(1, 3) >>> >>> y Fraction(2, 3) >>> >>> print(x,y) 1/3 2/3 >>>
分數的數學表達式:
>>> >>> x+y Fraction(1, 1) >>> x-y Fraction(-1, 3) >>> x*y Fraction(2, 9) >>>
通過浮點字符串創建分數對象:
>>> >>> Fraction('.25') Fraction(1, 4) >>> >>> Fraction('1.25') Fraction(5, 4) >>> >>> Fraction('.25')+Fraction('1.25') Fraction(3, 2) >>> >>> >>> z=2.5 >>> >>> o=Fraction(*z.as_integer_ratio()) >>> >>> o Fraction(5, 2)
內置數學工具:
>>> >>> import math >>> >>> math.pi,math.e (3.141592653589793, 2.718281828459045) >>> >>> math.sin(2*math.pi / 180) 0.03489949670250097 >>> >>> math.sqrt(144),math.sqrt(3),math.sqrt(4) (12.0, 1.7320508075688772, 2.0) >>> >>> pow(2,4),pow(2,5),2**4,2**5 (16, 32, 16, 32) >>> >>> abs(-42.0),sum((1,2,3,4,5,6)) #求絕對值,求和 (42.0, 21) >>> >>> min(3,1,2,4,5) #求最小數 1 >>> max(3,1,2,4,5) #求最大數 5 >>>
小數截斷方式:
>>> >>> math.floor(2.567),math.floor(-2.567) (2, -3) >>> math.trunc(2.567),math.trunc(-2.567) (2, -2) >>> >>> int(2.567),int(-2.567) (2, -2) >>> >>> round(2.567),round(2.467),round(2.567,2) (3, 2, 2.57) >>> >>> '%.1f' % 2.567,'{0:.2f}'.format(2.567) ('2.6', '2.57') >>>
range-----生成隨機數函數
>>> >>> import random >>> >>> random.random() 0.6746601025987419 >>> random.random() 0.569446993489575 >>> random.random() 0.31398115374410795 >>> >>> >>> random.randint(1,10) 10 >>> random.randint(1,10) 4 >>> random.randint(1,10) 1 >>> >>> random.choice(['banane','apple','orange']) 'banane' >>> >>> random.choice(['banane','apple','orange']) 'orange' >>> random.choice(['banane','apple','orange']) 'orange' >>> random.choice(['banane','apple','orange']) 'apple' >>>
集合
集合(set),是唯一的、不可變的對象的一個無序集合(collection),支持與數學集合理論相對應的操作。一個項,無論在集合中添加多少次,都只能出現一次。
集合是無序的,并且不會把鍵匹配到值,既不是序列也不是映射類型。
>>> >>> x = set('abcde') >>> y = set('bdxyz') >>> >>> x,y ({'a', 'e', 'd', 'b', 'c'}, {'y', 'x', 'd', 'b', 'z'}) >>> >>> 'e' in x True >>> 'g' in x False >>> >>> x - y {'c', 'e', 'a'} >>> >>> x | y {'a', 'e', 'y', 'x', 'd', 'b', 'c', 'z'} >>> >>> x & y {'b', 'd'} >>> >>> x ^ y {'c', 'a', 'y', 'e', 'x', 'z'} >>> >>> x > y,x < y (False, False)
>>> #Add方法插入項、update按位置求集、remove根據值刪除一個項目。 >>> >>> z = x.intersection(y) # same as x & y >>> >>> z {'b', 'd'} >>> >>> z.add('yert') >>> >>> z {'b', 'd', 'yert'} >>> >>> z.update(set('ace')) >>> >>> z {'b', 'c', 'e', 'a', 'd', 'yert'} >>> >>> z.remove('b') >>> >>> z {'c', 'e', 'a', 'd', 'yert'} >>> >>> >>> >>> a=set('123') >>> >>> a=set([1,2,3]) >>> >>> a {1, 2, 3} >>> >>> a.union([3,4]) {1, 2, 3, 4} >>> >>> a.intersection((1,3,5)) {1, 3} >>> >>> a.issubset(range(-5,5)) True >>>
在Python中{}仍然是一個字典,空的集合必須通過內置函數set創建,并且以同樣方式顯示。
>>> b={1,2,3} >>> b {1, 2, 3} >>> >>> >>> type(b) <class 'set'> >>> >>> >>> type({}) <class 'dict'> >>> >>> a={} >>> >>> a {} >>> c={} >>> >>> >>> type(c) <class 'dict'> >>> >>> >>> d=set() >>> >>> d set() >>> >>> type(d) <class 'set'> >>>
集合與列表的轉換:
>>> >>> L=[1,2,1,3,4,5,6,7,8.7] >>> >>> set(L) {1, 2, 3, 4, 5, 6, 7, 8.7} >>> >>> L=list(set(L)) >>> >>> L [1, 2, 3, 4, 5, 6, 7, 8.7] >>>
感謝各位的閱讀!關于“Python中數字的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。