Python基礎之數(shù)字(Number)超級詳解
Python中有6個標準的數(shù)據(jù)類型:Number(數(shù)字)、String(字符串)、List(列表)、Tuple(元組)、Set(集合)、Dictionary(字典),每種類型有其固有的屬性和方法,學會這六種數(shù)據(jù)類型及基礎的方法,很多代碼基本上都能看得懂,很多功能也都能實現(xiàn)了。要是實現(xiàn)面向百度編程到面向自己編程的轉變,必須搞搞清楚這六大數(shù)據(jù)類型的屬性和方法。
標準的數(shù)據(jù)類型又分為可改變的數(shù)據(jù)類型和不可變的數(shù)據(jù)類型,數(shù)字、字符串、元組屬于不可變類型;列表、字典、集合都屬于可變類型。

什么是可變類型?在值改變的情況下, 內存地址(ID)不變, 證明改變的是原值即可變類型-->也叫不可 hash 類型
'''修改前'''ls = ['aaa', 'bbb', 'ccc']id(ls)#1744975906560'''修改后'''ls[0] = 'AAA'id(ls)#1744975906560什么是不可變類型?在值改變的情況下, 內存地址也改變了, 證明這改變的值是產(chǎn)生的新值即原值不可變-->也叫可 hash 類型他們都是一個不可分割的整體
'''修改前'''x = 'xiaowuge'id(x)#1744975676080'''修改后'''x = "XiaoWuGe"id(x)#1744996503344
本文將對其中的數(shù)字類型進行詳解。
一、Python支持的數(shù)字類型
Python支持的數(shù)值類型有四種:整數(shù)(int)、浮點數(shù)(float)、復數(shù)(complex), 此外,布爾值(bool)屬于整數(shù)的子類型。
1、整數(shù)類型
與數(shù)學中整數(shù)概念一致,共有4種進制表示:十進制,二進制,八進制和十六進制。默認情況,整數(shù)采用十進制,其它進制需要增加相應的引導符號,如下表所示。
進制種類 | 引導符號 | 描述 | 備注 |
十進制 | 無 | 默認情況 | |
二進制 | 0b 或 0B | 由字符0和1組成 | bin將一個整數(shù)轉換為一個二進制字符串 bin(43):'0b101011' |
八進制 | 0o 或 0O | 由字符0到7組成 | oct(x) 將一個整數(shù)轉換為一個八進制字符串 oct(43):'0o53' |
十六進制 | 0x 或 0X | 由字符0到9、a到f、A到F組成,不區(qū)分大小寫 | hex(x) 將一個整數(shù)轉換為一個十六進制字符串 hex(43):'0x2b' |
整數(shù)類型的取值范圍在理論上沒有限制,實際上受限制于運行Python程序的計算機內存大小。
2、布爾型
布爾型(bool),關鍵字True和False,分別表示真和假,他們的值是1和0,還可和數(shù)字相加。
True+True23*True31+True-False2可以用內置函數(shù)type()來查詢變量所指的對象類型
a, b, c, d = 13, 2.5, True, 5+4jtype(a),type(b),type(c),type(d)(int, float, bool, complex)
3、浮點數(shù)類型
浮點數(shù)類型表示有小數(shù)點的數(shù)值,浮點數(shù)有兩種表示方法:小數(shù)表示和科學計數(shù)法表示。整數(shù)具有無限的精度。浮點數(shù)通常使用C中的double來實現(xiàn),有關你的程序運行所在機器上浮點數(shù)的精度和內部表示法可在 sys.float_info 中查看。
import syssys.float_infosys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308,min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
4、復數(shù)類型
表示數(shù)學中的復數(shù),復數(shù)可以看作二元有序實數(shù)對(a, b),表示a + bj,其中,a是實數(shù)部分,b為虛數(shù)部分。在Python語言中,復數(shù)的虛數(shù)部分通過后綴 'J' 或 'j' 來表示。復數(shù)包含實部和虛部,分別以一個浮點數(shù)表示。要從一個復數(shù) z 中提取這兩個部分,可使用 z.real 和 z.imag。
#創(chuàng)建一個復數(shù)complex(3, 4)(3+4j)#復數(shù) c 的共軛c = complex(3, 4)c.conjugate()(3-4j)
二、Pyhon支持的運算
1、運算操作概述
所有數(shù)字類型(復數(shù)除外)都支持下列運算(有關運算優(yōu)先級,請參閱:運算符優(yōu)先級):
Python提供了9個基本的數(shù)值運算操作符。這些操作符不需要引用標準或者第三方函數(shù)庫,也叫內置操作符。
運算 | 結果: | 注釋 | 完整文檔 |
x + y | x 和 y 的和 | ||
x - y | x 和 y 的差 | ||
x * y | x 和 y 的乘積 | ||
x / y | x 和 y 的商 | ||
x // y | x 和 y 的商數(shù),并取整 | (1) | |
x % y | x / y 的余數(shù) | (2) | |
-x | x 取反 | ||
+x | x 不變 | ||
abs(x) | x 的絕對值或大小 | abs() | |
int(x) | 將 x 轉換為整數(shù) | (3)(6) | int() |
float(x) | 將 x 轉換為浮點數(shù) | (4)(6) | float() |
complex(re, im) | 一個帶有實部 re 和虛部 im 的復數(shù)。im 默認為0。 | (6) | complex() |
c.conjugate() | 復數(shù) c 的共軛 | ||
divmod(x, y) | (x // y, x % y) | (2) | divmod() |
pow(x, y) | x 的 y 次冪 | (5) | pow() |
x ** y | x 的 y 次冪 | (5) |
注釋:
1)也稱為整數(shù)除法。結果值是一個整數(shù),但結果的類型不一定是 int。運算結果總是向負無窮的方向舍入: 1//2 為 0, (-1)//2 為 -1, 1//(-2) 為 -1 而 (-1)//(-2) 為 0。
2)不可用于復數(shù)。而應在適當條件下使用 abs() 轉換為浮點數(shù)。
3)從浮點數(shù)轉換為整數(shù)會被舍入或是像在C語言中一樣被截斷;請參閱math.floor() 和math.ceil()函數(shù)查看轉換的完整定義。
4)float 也接受字符串 "nan" 和附帶可選前綴 "+" 或 "-" 的 "inf" 分別表示非數(shù)字 (NaN) 以及正或負無窮。
5)Python 將 pow(0, 0) 和 0 ** 0 定義為1,這是編程語言的普遍做法。
6)接受的數(shù)字字面值包括數(shù)碼 0 到 9 或任何等效的 Unicode 字符(具有 Nd 特征屬性的代碼點)。
注意:表中所有的二元數(shù)學操作符(+、-、*、/、//、%、**)都有與之對應的增強賦值操作符(+=、-=、*=、/=、//=、%=、**=)。即x op= y 等價于 x = x op y ,op 為二元數(shù)學操作符。
