01-Python的基礎知識3
- 數字
- 數字常量:
- 整型:
- 概念:
- 指代平常數學上的整數常量。Python中整型指代int類型。
- 基本運算:
- 可以執行平常的+,-,*,/ ,%以及其他操作
假設a=15,b=3
運算符 | 描述 | 實例 |
+ | 加 - 兩個對象相加 | a+b返回18 |
- | 減 - 得到負數或是一個數減去另一個數 | a-b返回12 |
* | 乘 - 兩個數相乘或是返回一個被重復若幹次的字符串 | a*b返回45 |
/ | 除 - x除以y | a/b返回0 |
% | 取模 - 返回除法的余數 |
b%a返回3 |
// | 取整除 - 返回商的整數部分(向下取整) | b//a返回0 |
** | 冪 - 返回x的y次冪 | a**b返回3375 |
- 進制數
- 十進制,包括0-9以內的數字。
- 二進制0b開頭, 只有0和1。
- 八進制0o開頭。包括0-8。
- 十六進制0x開頭。包含0-9,a-f,數字上以0x開頭表示。
- 使用 int()函數進行轉換
1 int(‘1101‘) #返回1101 2 int(‘1101‘,2) #返回13 3 int(‘1101‘,8) #返回577 4 int(‘1101‘,10) #返回1101 5 int(‘1101‘,16) #返回4353
- 使用內置函數bin(x),oct(x),hex(x)
1 print(bin(45)) #0b101101 返回整數i的二進制表示 2 print(oct(45)) #0o55 返回i的八進制表示
3 print(hex(45)) #0x2d 返回i的十六進制表示
- 各種進制之間的相互轉換,百度唄!
- 布爾型:
- 使用True 和False 來表示“真”與“假”。 True相當於整數值1,False相當於整型0。
print(type(True)) #輸出True的類型 <class‘bool‘>
- 浮點數:
- 浮點型用來處理實數,即帶有小數的數字。
- 十進制數形式:6.33, 5.22, 8.9等等
- 指數形式: 89e4 就是表示 89*10**3
- 復數:
- 由實部和虛部組成,通常表示為x+yj.
- 復數的兩個部分都以屬性名的形式存在,分別為real與imag.
z = 5.2 + 6.9j print(z.real, z.imag) #顯示5.2 6.9
- 使用complex(實部, 虛部)
complex(2,8.2)#返回(2+8.2j)
- 數字運算
操作符 | 說明 | 實例 |
** | 冪運算 | 3**2 |
~ | 按位運算 | ~7
|
- | 負號 | |
*、%、/、// | 乘法、余法、真除法、floor除法 | |
+、- | 加法、減法 | |
<<、>> | 向左移位、向右移位 | |
& |
按位與 | |
^ | 按位異或 | |
| | 按位或 | |
<、<=、>、>=、==、!= |
比較運算:小於、小於等於、大於、大於等於、等於、不等於 |
|
not | 邏輯非 | |
and | 邏輯與 | |
or | 邏輯或 |
- 計算優先級,按從上至下的順序操作符的運算優先級依次從高到低,可以使用括號(括號優先級最高)改變優先級
v1 = 8*9+6 v2 = 8*(9+6) print(v1,"----",v2) #結果為78 ---- 120
- 計算過程自動轉換數據類型:將簡單的數據類型轉換為復雜的數據類型
- 復雜程度順序:布爾類型 < 整數 < 浮點數 < 復數
v1 = 5+6.5 v2 = 5+6.1+(8+9j) print(v1,type(v1),"----",v2,type(v2)) #11.5 <class ‘float‘> ---- (19.1+9j) <class ‘complex‘>
- 在Python 3.x中,“/”運算執行真除法,無論操作是否為整數,計算結果保留小數部分,類型為floor類型。“//”為floor除法。
v1 = 3/5; v2 = 3//5; print(v1,"----",v2) #0.6 ---- 0
- 位運算
- 按位取反~
#計算機內部整數用補碼表示,正數補碼和原碼一樣 #正數求補碼: 原碼==補碼 【原碼(取反)->反碼(加1)->補碼(符號位不改變)】 #負數求補碼: 原碼(取反)->反碼(加1)->補碼(符號位不變) # 按位取反~:零變成1,1變成0,(符號位也需要改變) ~7 #(1)7的8位二進制補碼形式為 0 0000 0111, #(2)按位取反得返回結果的原碼: 1 1111 1000,(已經為負數) #(3)按照運算規則取反得(有符號位):1 0000 0111 #(4)求補碼,加一: 1 0000 1000 即輸出 -8 ~-5 #(1)-5的8位二進制原碼形式為 1 0000 0101, #(2)按位取反為 0 1111 1010, #(3)按照運算規則加一得補碼(有符號位):0 1111 1011 #(4)取反碼: 0 0000 0100 即輸出 4
- 按位與&
3&8 #(先右對齊,看列)如果同一列兩個都為1,才為1,否則為0 #3: 0000 0011 #8: 0000 1000 # 0000 0000 #輸出結果為0 -8&-9 # -8: #原碼:1000 1000 #反碼:1111 0111 #補碼:1111 1000 # -9: #原碼:1000 1001 #反碼:1111 0110 #補碼:1111 0111 #兩個補碼相與 :1111 0000 #取反 1000 1111 #結果:補碼: 1001 0000 = 整型的 -16
- 按位異或 ^:按位異或指為上的數相同時結果為0,否則為1;
7^4 #0000 0111 #0000 0100 #0000 0011 #結果為3 7^-4 #0000 0111 #1000 1100 (-4的補碼) #1 1011 -> 1 0100 -> 1 0101 #結果為-5
- 按位或 | :按位異或指為上的數有一個為1時結果就為1,否則為0;
4|5 #結果為5 -4|5 #結果為-3
- 位移 :
# (x<<y)將x按二進制形式向左移動y位,末尾補0,符號位不變。 1<<2 #結果為4 -1<<2 #結果為-4 # (x>>y)將x按二進制形式向右移動y位,末尾補0,符號位不變。 8>>2 #結果為2 -8>>2 #結果為-2
- 邏輯運算
#邏輯非not not True,not Flase # 返回(Flase,True) #邏輯與and #"x and y" 在兩個操作數為True是才為True,否則為Flase #邏輯或or #"x or y" 在兩個操作數為Flase是才為Flase,否則True #
- 比較運算:返回的值為邏輯值
8>9 #結果返回Flase 4<8 #結果返回True
01-Python的基礎知識3