python 資料類型,python
資料類型單位換算
最小的單位為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
進位轉換
十進位
二進位
八進位
十六進位
電腦中的資料是以哪種進位儲存的?為什嗎?
電腦中的資料是如何儲存的?
如何儲存負數?
原碼、反碼、補碼?
正數的三碼一致,只有負數才有反碼和補碼
反碼等於原碼的符號位不變,其餘位取翻
補碼等於對於的反碼加1
電腦中的資料都是以補碼的形式存在
資料類型
資料類型是為了處理不同的運算而存在,
python中的資料類型有:整型、浮點、字串、列表、元組、字典、集合、空
整型(int):就是數學中的整數
浮點(float):就是數學中的小數
# 小數(浮點數)
b = 3.14
print(type(b))
# 科學計數法
c = 3.14e-3
print(c)
布爾(bool):與生活中的真假邏輯相對應
# bool類型,只有兩個值,True和False
d = False
print(type(d))
空(NoneType):是一個特殊的類型,只有一個值(None)
字串(str):用引號括起來的一串字元
g = 'hello' \
' world'
print(g)
h = 'hello \
world'
print(h)
i = '''
abc
def
123
'''
print(i)
# 無論什麼字元,都是一個長度
s = 'hello你好'
print(len(s))
# 直接拼接
s2 = 'hello' + 'world'
print(s2)
# 指定的字串重複若干次,然後拼接一起
s3 = 'abc' * 3
print(s3)
s4 = '123456'
# 從開頭提取,下表從0開始
print(s4[0])
# 從末尾提取,下表從-1開始
print(s4[-2])
s5 = 'abcdefg'
# s[起始下表:結束下表],包括起始下表元素,不包括結束下表元素
print(s5[0:3])
# 從開頭提取到指定位置
print(s5[:4])
# 從指定下表提取到結尾
print(s5[3:])
# 下表為1開始,提取到倒數第二個,不包括倒數第二個
print(s5[1:-2])
# 提取最後4個字元
print(s5[-4:])
# 提取全部
print(s5[:])
# 指定步進值,預設為1
print(s5[::2])
# 字串逆序
print(s5[::-1])
name = 'goudan'
like = 'wangdahua'
age = 18
print('我叫%s,暗戀%s,她今年%d歲了' % (name, like, age))
# 字元 => ASCII
print(ord('a'))
# ASCII => 字元
print(chr(65))
print('我叫{},喜歡{},今年{}歲了'.format(name, like, age)) print('我叫{2},喜歡{1},今年{0}歲了'.format(name, like, age)) print('我叫{nm},喜歡{lk},今年{a}歲了'.format(nm=name, lk=like, a=age))
> %s:給字串佔位的
>
> %d:給整型資料佔位
>
> %f:給浮點數佔位
>
> %c:給字元佔位
>
> • ASCII:
>
> • 0~9:48~57
>
> • A~Z:65~90
>
> • a~z:97~122
- 列表(list):通過[]定義,裡面可以存放任意類型的資料
- 取值:lt[0]、lt[-1]
- 列表是可以修改的,lt[1] = '小敏'
- 存在越界問題
- 也可以進行 '+' 和 '*' 的運算
- 也可以進行切片操作
- lt[:] = [],表示清空列表
- lt[:2] = [],刪除前兩個元素
- 元組(tuple):通過()定義,其他動作與列表相同
- 元組不可修改
- 當只有一個元素時,元素後要添加一個逗號
- 集合(set):使用{}定義,
- 空的集合不能使用大括弧定義(留給字典用的),使用set()定義
- 集合是不可修改
- 集合中的元素時無序的
- 集合中的元素不能重複
- 簡單使用
```python
s = {'李白', '杜甫', '白居易', '蘇軾', '陶淵明', '李白'}
s2 = {'李白', '李商隱', '杜牧', '蘇軾'}
print(type(s))
print(s)
# 交集
print(s & s2)
# 並集
print(s | s2)
# 差集
print(s - s2)
print(s2 - s)
# 空的集合這樣定義,不能使用{}
s3 = set()
print(type(s3))
字典(dict):通過{}定義
元素是由索引值對組成的
鍵和值之間使用':'串連
字典中的鍵是唯一的,值可以是任意的
字典是可變的
簡單使用:
d = {'name': 'xiaoming', 'age': 18}
print(d)
print(type(d))
# 根據鍵提取對應的值
print(d['name'])
# 鍵不存在時會報錯
# print(d['abc'])
# 鍵存在返回對應的值,鍵不存在返回None,也可以自訂預設值
print(d.get('abc', '預設值'))
# 沒有則添加索引值對
# d['hello'] = 'world'
# 已存在則修改
d['name'] = 'xiaofang'
# 刪除元素
# del d['name']
# print(d)
# len返回的是索引值對的個數
print(len(d))
強制類型轉換
int() # 轉化為整型
float() # 轉換為浮點數
str() # 轉換字串
list() # 轉換為列表
tuple() # 轉換為元組
set() # 轉換為集合
dict() # 轉換為字典
l = [('name', 'xiaoming'), ('age', 18)]
# 將列錶轉化為字典
d1 = dict(l)
print(d1)
列表的去重,列表 => 集合 => 列表
擷取變數地址
a = 10
print(id(a))
不必深究變數的地址問題