1. 程式人生 > >01-Python的基礎知識3

01-Python的基礎知識3

true 右移 屬性 取模 是否 type 二進制表示 pre hex

- 數字

 - 數字常量:

  - 整型:

    - 概念:

      - 指代平常數學上的整數常量。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