千鋒教育Python零基礎全套視頻教程,7天Python極速入門(含python
2023-07-22 15:51 作者:bili_180516 | 我要投稿

Python中的數據
數據類型
- 字符串類型 str() '數據' 存儲文本數據
- 數字類型Number: 存儲數字
- 整形 int()
- 浮點型 float()
- 復數 complex()
- 布爾類型 bool() True False
- 列表類型 list[]
- 元組類型 tuple()
- 字典類型 dictionary{} 鍵值對類型 key-value 數據
- 集合類型 set{}
type() 查看數據類型
類型轉換
自動類型轉換
當兩個不同類型的數據進行運算時,結果會向更高精度進行計算,精度等級:布爾<整型<浮點型<復數
#整形與浮點型運算時,整形轉化為浮點型,結果也為浮點型 a = 10 b = 3.14 print(a+b)?#13.14
強制類型轉換
其他轉字符串 str()
所有類型數據都能轉為字符串類型
a = 123 # int res = str(a) print(res, type(res)) # 123 <class 'str'> a = True # bool res = str(a) print(res, type(res)) # True <class 'str'> a = [1, 2, 3] # list res = str(a) print(res, type(res)) # [1, 2, 3] <class 'str'> a = (1, 2, 3) # tuple res = str(a) print(res, type(res)) # (1, 2, 3) <class 'str'> a = {1, 2, 3} # set res = str(a) # {1, 2, 3} print(res, type(res)) # {1, 2, 3} <class 'str'> a = {1: 'a', 2: 'b'} # dict res = str(a) print(res, type(res)) # {1: 'a', 2: 'b'} <class 'str'>
其他轉Number
只有字符串類型能轉換成數字類型
其他轉整形 int()
bool --> int
print(int(True))?# 1 print(int(False))?#0
float --> int (直接舍去小數部分)
a = 5.9???# float b = int(a)?# int print(b)??# 5
str --> int (str中數據必須為整數類型)
a = '10'??# str b = int(a)?# int
將其他進制的數據轉成十進制數據 base = 原數據類型
print(int('0b111' , base = 2))?#15 print(int('0o13' , base = 8))??#11 print(int('0xa2' , base = 16))?#162 print(int('11' , base = 8))???#9 print(int('11' , base = 9))???#10
其他轉浮點型 float()
科學計數法 結果都是浮點型
a = 1.1e10 print(a , type(a))????# 11000000000.0 <class 'float'>
bool --> float
print(float(True))?# 1.0 print(float(False))?# 0.0
int --> float
a = 123 # int res = float(a) print(res, type(res)) # 123.0 <class 'float'>
str --> float (str中數據必須為數字類型)
a = '5.6' # str b = float(a) print(b,type(b)) # 5.6 <class 'float'>
其他轉布爾類型 bool()
容器類 str() list() tuple() set() dict()
- 容器為空 -->False
- 容器不為空 -->True
a = '' # 空字符串 res = bool(a) print(res, type(res)) # False <class 'bool'> a = '0' # 字符串中有元素 res = bool(a) print(res, type(res)) # True <class 'bool'> a = [] # 空列表 res = bool(a) print(res, type(res)) # False <class 'bool'> a = [1, 2, 3] # 列表中有元素 res = bool(a) print(res, type(res)) # True <class 'bool'> a = tuple() # 空元組 res = bool(a) print(res, type(res)) # False <class 'bool'> a = dict() # 空字典 res = bool(a) print(res, type(res)) # False <class 'bool'> a = set() # 空集合 res = bool(a) print(res, type(res)) # False <class 'bool'>
數字類
- int 0 --> False 其他值 --> True
- float 0.0 --> False 其他轉 --> True
a = 0 # int res = bool(a) print(res, type(res)) # False <class 'bool'> a = 1 # int res = bool(a) print(res, type(res)) # True <class 'bool'> a = 0.0 # float res = bool(a) print(res, type(res)) # False <class 'bool'> a = 0.345 # float res = bool(a) print(res, type(res)) # True <class 'bool'>
其他轉列表 list()
非容器類型不能轉換為列表 (Number類型不能轉換為list)
str --> list 會把字符串中的每—個字符當作列表的元素
a = '123' # str res = list(a) print(res, type(res)) # ['1', '2', '3'] <class 'list'>
tuple --> list 會把元組中的每—個字符當作列表的元素
a = (1, 2, 3) # tuple res = list(a) print(res, type(res)) # ['1', '2', '3'] <class 'list'>
dict --> list 只保留鍵
a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict res = list(a) print(res, type(res)) # ['name', 'Age, 'Sex'] <class 'list'>
set --> list 結果是無序的,因為集合本身就是無序的
a = {'a', 'b', 1, 2, 'c'} # set res = print(a) print(res, type(res)) # ['b', 2, 1, 'a', 'c'] <class 'list>
其他轉元組 tuple()
同上(3)
a = 'abc' # str res = tuple(a) print(res, type(res)) # ('a', 'b', 'c') <class 'tuple> a = [1, 2, 3] # list res = tuple(a) print(res, type(res)) # (1, 2, 3) <class 'tuple> a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict res = tuple(a) print(res, type(res)) # ('name', 'Age, 'Sex') <class 'tuple> a = {'a', 'b', 1, 2, 'c'} # set res = tuple(a) print(res, type(res)) # ('b', 2, 1, 'a', 'c') <class 'tuple>
其他轉集合 set()
- 非容器類型不能轉換為列表 (Number類型不能轉換為set)
- 規(guī)律同上(3) 區(qū)別 所有結果都無序
a = '123' # str res = set(a) print(res, type(res)) # {'3', '2', '1'} <class 'set'> a = ['a', 'b', 2, 1] # list res = set(a) print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'> a = ('a', 'b', 2, 1) # tuple res = set(a) print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'> a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict res = set(a) print(res, type(res)) # {'Age', 'name', 'Sex'} <class 'tuple>
其他轉字典 dict()
- 非容器類型不能轉換為列表 (Number類型不能轉換為dict)
- 字符串 不能 轉字典類型,因為字符串不能生成二級容器
a = '123' # str res = dict(a) print(res, type(res)) # 此時python會報錯:ValueError: dictionary update sequence element #0 has length 1; 2 is required
- 集合 不能 轉字典類型,因為集合不支持哈希
- 列表類型轉字典類型,列表必須為等長二級容器,子容器中的元素個數必須為2
- 元組類型轉字典類型,列表必須為等長二級容器,子容器中的元素個數必須為2
a = [[1, 2], ['a','b']] # 等長二級列表 res = dict(a) print(res, type(res)) # {1: 2, 'a': 'b'} <class 'dict'> a = ((1, 2), (3, 4), (5, 6)) # 等長二級元組 res = dict(a) print(res, type(res)) # {1: 2, 3: 4, 5: 6} <class 'tuple'> a = {{1, 2}, {3, 4}} # 等長二級集合 res = dict(a) print(res,type(res)) # 此時python會報錯:TypeError: unhashable type: 'set'
標簽: