Python--核心編程特性

1.模塊導入問題app

  如何導入模塊:函數

    import sysspa

  如何查看該模塊路徑:code

    prinnt(sys.path)blog

2.== 與 is 的比較  返回Ture Flase遞歸

  "=="用來比較兩個值是否相等內存

  "is"用來表示兩個變量是不是同一個,比較的是內存地址(針對引用類型(list,tuper,dict)字符串

 1 a = [1,2,3]
 2 b = [1,2,3]
 3 a == b 
 4is b 
 5 基本數據驗證
 6 a=256 
 7 b=256 
 8is b 
 9 a == b 
10 [-5 257]範圍內的數字爲同一個值

  特殊:在基本類型中,有一個小整數,在[-5,max]之間是Tureclass

value1 = -6
value2 = -6
print(value1 == value2)  Ture
print(value1 is value2)    Flase
    

 

3.深淺複製問題效率

  1.深淺copy概念

      快捷方式

      副本

    嵌套列表複製時,若是是深copy,會遞歸複製列表

    淺copy只複製當前列表

  使用copy複製時,要先導import copy模塊

a = [1,2,3]
b = a
print(id(a))
print(id(b))
import copy
c = copy.copy(a)
d = copy.deepcopy(a)
print(id(c))
print(id(d))

  2.嵌套列表深copy

import copy
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [list1,list2]
list4 = copy.copy(list3)
list5 = copy.deepcopy(list3)
list1.append(10)
print(list4)
print(list5)
print(id(list4))
print(id(list5))

輸出:[[1, 2, 3, 10], [4, 5, 6]]
   [[1, 2, 3], [4, 5, 6]]
   
2357803911112
   2357803911048

4.進制問題

進制問題:
十進制:
0 ~ 9
一、二進制
0 1
0b
二、八進制
0-7
0o
三、十六進制
0-9 A-F
0x
十進制轉換二進制
除以2 取餘數(倒着)
10 --> 1010
十進制轉2,8,16進制
一、函數實現
2:
bin()
8:
oct()
16:
hex()
二、手動推算
2:
除以2 倒取餘數
8:
除以8 倒取餘數
16:
除以16 倒取餘數
若是餘數爲10,應該是A
其餘進制轉換爲十進制
一、函數實現
2->10
int('0b1010',2)
8->10
int('0o144',8)
16->10
int('0x3c',16)
二、方法推算
例如:
二進制數字1010
0 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3
a = 10
resutl = bin(a)
print(type(resutl))
print(resutl)

result2 = int('0b1010',2)
print(result2)

b = 1000
# 打印八進制的字符串
print(oct(b))
# 打印十六進制的字符串
print(hex(b))

c = '0x3e8'
print(int(c,16))

5.原碼,反碼,補碼

原碼、反碼、補碼

1 - 1
1 + -1

正數1的二進制形式
0000 0001
0000 0001
0000 0001
負數1的二進制形式(原碼、反碼、補碼=反碼+1)
1000 0001   原碼
1111 1110   反碼
1111 1111   補碼

1000 0010  -2

0000 0001
1111 1111
0000 0000

6.位運算

  節約內存,效率高

  直接基於二進制操做   

  2  ->  8
  2 + 6
  2 * 4
  左移:
  <<
  2 * 2^n

  右移:
  >>
  8 / 2^n
print(2 << 2)
print(8 >> 2)
print(4 << 3)
print(64 >> 3)

# 按位與  &   都爲1的時候結果1
print(3 & 5)
# 按位或 丨   有一個爲1結果爲1
print(3 | 5)
# 按位異或    相同爲0,不一樣爲1   對同一個數字異或兩次,獲得源數據
result = 3 ^ 5
print(result)
print(result^ 5)
# 按位取反 " ~ "
print('-'*50)
# 按位取反,獲得原碼->取反碼->取補碼
print(~5)
相關文章
相關標籤/搜索