千锋教育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)
- 规律同上(3) 区别 所有结果都无序
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'