存儲單位
- 最小單位是bit,表示二進制的0或1,一般寫作b
- 最小的存儲單位是字節,用byte表示,1B = 8b
- 1024B = 1KB
- 1024KB = 1MB
- 1024MB = 1GB
- 1024GB = 1TB
- 1024TB = 1PB
- 2^32 = 2^10 * 2^10 * 2^10 * 2^2 = 4GB
進制轉換
- 十進制:
- 基數爲0~9,逢10進1
- 示例:123 = 1 * 10^2 + 2 * 10^1 + 3*10^0 = 100 + 20 + 3 = 123
- 二進制:
- 基礎0和1,逢2進1,python中使用’0b’表示
- 示例:0b110100 = 2^5 + 2^4 + 2^2 = 32 + 16 + 4 = 52
- 十進制轉二進制:除2取餘,倒序書寫
- 22 = 0b10110
- 八進制:
- 基數0~7,逢8進1,python中使用’0o’表示
- 示例:0o123 = 1 * 8^2 + 2 * 8^1 + 3 * 8^0 = 64 + 16 + 3 = 83
- 八進制轉二進制:八進制的1位表示3位二進制數
- 0o123 = 0b001 010 011
- 十六進制:
- 基數09、AF,逢16進1,python中使用’0x’表示
- 示例:0xAB = 10 * 16^1 + 11 * 16^0 = 160 + 11 = 171
- 十六進制轉二進制:十六進制1位表示4位二進制數
- 0xABC = 0b1010 1011 1100
- 計算機中的數據,是以哪種進制存儲的?爲什麼?
- 二進制,因爲計算機設計時只識別二進制。具體原因如下:
- 穩定性高(0和1)、成本低(技術上易實現)、與生活中的真假邏輯相吻合(易於解決實際問題)
- 計算機中的數據如何存儲?
- 如何存儲負數?
- 最高位作爲符號位:0表示正數,1表示負數
- 雖然犧牲了最高位,但是可以解決負數存儲問題,進而簡化了硬件設計成本
- 原碼反碼和補碼
- 正數的三碼一致,只有負數纔有反碼和補碼
- 負數的反碼等與原碼符號位不變,其餘位取反
- 負數的補碼等於反碼加1
- 計算機中的數據都是以補碼存儲的
- 如何存儲負數?
數據類型
-
不同的數據類型都是爲了解決實際問題而出現,就是爲了進行各種運算而存在
-
Python中常用數據類型:整型、浮點、布爾、字符串、列表、元組、字典、集合、空等
-
整型(int):就是數學中的整數
-
浮點(float):就是數學中的小數
pi = 3.14
print(pi)
print(type(pi))# 科學計數法 b = 3.14e-3 print(b)
-
複數(complex):瞭解內容
c = 3 + 5j
print(type©) -
布爾(bool):只有True/False兩個值,對應於生活中的真假
-
空(NoneType):只有一個值None
-
字符串(str):使用引號括起來的一串字符
- 可以使用單引號雙引號或者三引號定義
- 轉義:就是時特定的字符失去原有的意義,使用’'進行轉義
- 單引號中的單引號,雙引號中的雙引號
- 很多時候’'也需要轉義
- 特殊:’\n’表示換行,’\t’表示製表
-
列表(list):通過[]進行定義,可以存儲一系列的任意數據,可以添加刪除元素
-
元組(tuple):通過()進行定義,可以存儲一系列的任意數據,不可以添加刪除元素
-
集合(set),使用{}進行定義,可以存貯一系列的任意數據,集合中的數據不能重複
-
字典(dict),使用{}進行定義
-
元素是由鍵值對組成
-
鍵和值之間使用’:'連接
-
字典中的鍵時唯一的,值可以是任意的
-
字典中的元素可以添加和刪除
-
示例:
xiaoming = {‘name’: ‘小明’, ‘age’: 20}
print(xiaoming)
print(type(xiaoming))根據鍵提取值
print(xiaoming[‘name’])
根據不存在的鍵獲取值時會報KeyError錯
print(xiaoming[‘height’])
等價於xiaoming[‘name’],但是當鍵不存在時不報錯,返回None
print(xiaoming.get(‘height’))
統計元素個數
字典表示鍵值對個數
print(len(xiaoming))
列表表示元素個數
print(len(lt))
字符串表示字符個數
print(len(‘你好’))
-
類型轉換
- 隱式類型轉換:運算、條件判斷等
- 強制類型轉換:使用專門的函數就行類型轉換
int:轉換爲整型,可以通過base參數指示帶轉換數據的格式
float:轉換爲浮點數
str:轉換爲字符串
list:轉換爲列表,參數必須是可迭代對象(str、tuple、set、dict)
tuple:轉換爲元組,使用方法同上
set:轉換爲集合,使用方法同上
dict:轉換爲字典,參數的內容必須是成對出現的
獲取變量地址
-
函數:id
-
示例:
a = 10
print(id(a))
# 通過id可以獲取變量的地址
# a = 20
# print(id(a))
b = 10
print(id(b)) -
說明:相當於儲存變量的內存塊的地址編碼
數據簡單操作
-
字符串
s = 'hello' # 字符串的重疊 s = 'hello' * 2 # 字符串的拼接 s = 'hello' + 'world' print(s) # 統計字符個數 print(len(s)) # 提取單個字符,通過下標提取 # 從開頭提取,下標從0開始 print(s[0]) # 從結尾提取,下標從-1開始 print(s[-1]) # 切片:s[開始:結束:步進] s = 'abcdefg' # 包括起始下表,不包括結束下標,默認的步進值爲1 print(s[0:3]) print(s[2:4]) # 當一邊沒有指定就提取到該邊的邊界 print(s[:4]) print(s[3:]) print(s[1:-2]) print(s[-4:]) print(s[:]) print(s[::2]) # 倒序提取 print(s[::-1]) # 格式化 # %s:字符串 # %d:整數 # %f:小數 # %c:單個字符 print('俺叫%s,暗戀%s,她今年%d歲了' % (name, like, age)) print('我是{},今年{},暗戀{}'.format(name, age, like)) print('我是{2},今年{1},暗戀{0}'.format(name, age, like)) print('我是{nm},今年{a},暗戀{l}'.format(nm=name, a=age, l=like))
-
列表
lt = [1, 2, 3, 4, 5] print(lt[0]) print(lt[-1]) print(lt[1:4]) print(len(lt)) # 修改 lt[0] = 100 # 添加的對象在列表是一個元素 lt.append(250) # lt.append(['hello', 'world']) # 將可迭代對象的每個元素挨個添加 lt.extend(['hello', 'world']) # 在指定位置插入元素 lt.insert(3, 'good') # 根據下標刪除元素 del lt[0] # 根據值刪除元素 lt.remove(250) # 刪除並返回指定下標的元素,默認最後一個元素 last = lt.pop(4) print(last) # 查詢索引號 lt = [1, 2, 3, 1, 1] print(lt.index(1)) # 逆序 # lt.reverse() # 統計指定對象出現的次數 print(lt.count(1)) lt = [1, 5, 7, 3] # 排序,默認升序排序,可以通過reverse指定是否倒序排序 lt.sort(reverse=True) print(lt)
ASCII
- 說明:美國信息交換標準代碼,其實就是給每個字符使用一個整數表示
- 函數:
- ord:根據字符獲取ASCII碼
- chr:根據ASCII碼轉換成字符
-