數字類型
1.計算
1.1、支持混合運算
當一個二元算術運算符的操作數有不同數值類型時,"較窄"類型的操作數會拓寬到另一個操作數的類型,其中整數比浮點數窄,浮點數比復數窄
1.2、邏輯值檢測
任何對象都可以進行邏輯值的檢測,以便在 if 或 while 作為條件或是作為下文所述布爾運算的操作數來使用。
在默認情況下,一個對象會被視為具有真值
例外:
定義了返回 False 的 bool() 方法
定義了返回零的 len() 方法
具有假值的內置對象
被定義為假值的常量: None 和 False
任何數值類型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空的序列和多項集: '', (), [], {}, set(), range(0)
1.3、布爾運算
x or y --> 如果 x 為真值,則 x,否則 y
短路運算符,因此只有在第一個參數為假值時才會對第二個參數求值。
x and y --> if x is false, then x, else y
短路運算符,因此只有在第一個參數為真值時才會對第二個參數求值。
not x --> if x is false, then True, else False
1.4、常見的運算
abs(x) --> x 返回一個數字的絕對值。 參數可以是整數、浮點數或任何實現了 abs() 的對象。 如果參數是一個復數,則返回它的模。
pow(x, y) --> 同 x ** y --> x 的 y 次冪
Python 將 pow(0, 0) 和 0 ** 0 定義為 1
math.trunc(x) --> x 截斷為 Int
math.floor(x) --> <= x 的最大 Int
math.ceil(x) --> >= x 的最小 Int
round(x[, n]) --> x 舍入到 n 位小數,半數值會舍入到偶數。 如果省略 n,則默認為 0。

is 和 ==
is 是判斷兩個標識符是不是引用自一個對象,類似id(x) == id(y)
==只是比價對象的值是否一致
<> 不等于
python3 已廢棄
// 整除
返回商的整數部分(向下取整)
% 取模運算
與數學取余運算有區別,主要在負數運算時不同。原因和//有關
10%4 = 2 10//4=2 10-2*4=2
-10%7= 4 -10//7=-2 -10-(-2*7)=4
2.int(整數形)
構造函數 int()
int(string,base)
base
- 默認0
- 允許的基數為 0 和 2--36
進制轉換10進制 16-->10
int('0xa', 16)
int('a', 16)
8進制/2進制同上
2.2、 在 3.6 版本發生變更 --> 可以使用下劃線將代碼文字中的數字進行分組。
2.3、轉換-->16進制 --> hex()
2.4、轉換-->8進制 --> oct()
2.5、轉換-->2進制 --> bin()
2.6、CPython 對于 int 和 str 之間的轉換有一個全局限制以緩解拒絕服務攻擊。 此限制 僅會 作用于十進制或其他以非二的乘方為基數的數字
默認限制為 4300
超出限制時,將引發 ValueError
3.float(浮點型)
構造函數 float()
"Infinity" | "inf" --> 無窮大
"inf", "Inf", "INFINITY" 和 "iNfINity" 都是正無窮可接受的拼寫形式
"nan" --> 空
在 3.6 版本發生變更 --> 可以使用下劃線將代碼文字中的數字進行分組。
3.1、float.hex()
以十六進制字符串的形式返回一個浮點數表示。 對于有限浮點數,這種表示法將總是包含前導的 0x 和尾隨的 p 加指數。
>>> float.hex(3740.0)
'0x1.d380000000000p+11'
3.2、float.fromhex(s)
返回以十六進制字符串 s 表示的浮點數的類方法。 字符串 s 可以帶有前導和尾隨的空格。
>>> float.fromhex('0x3.a7p10')
3740.0
4.complex(復數)
構造函數 complex(re, im)
實部 re 、虛部 im,im默認0
5.bool(布爾值)
bool類型只有兩個常量實例
True 表示真
False 表示假
bool() 可將任意值轉換為布爾值
注意
bool 是 int 的子類 。 在許多數字場景下,False 和 True 的行為分別與整數 0 和 1 類似。 但是,不建議這樣使用;請使用 int() 顯式地執行轉換。
浙公網安備 33010602011771號