欢迎光临散文网 会员登陆 & 注册

千锋教育Python零基础全套视频教程,7天Python极速入门(含python

2023-07-22 15:51 作者:bili_180516  | 我要投稿

Python中的数据

数据类型

  1. 字符串类型 str() '数据' 存储文本数据
  2. 数字类型Number: 存储数字
  3. 整形 int()
  4. 浮点型 float()
  5. 复数 complex()
  6. 布尔类型 bool() True False
  7. 列表类型 list[]
  8. 元组类型 tuple()
  9. 字典类型 dictionary{} 键值对类型 key-value 数据
  10. 集合类型 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()

  1. 容器为空 -->False
  2. 容器不为空 -->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'>

数字类

  1. int 0 --> False 其他值 --> True
  2. 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()

  1. 非容器类型不能转换为列表 (Number类型不能转换为set)
  2. 规律同上(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()

  1. 非容器类型不能转换为列表 (Number类型不能转换为dict)
  2. 字符串 不能 转字典类型,因为字符串不能生成二级容器
a = '123' # str
res = dict(a)
print(res, type(res)) # 此时python会报错:ValueError: dictionary update sequence element #0 has length 1; 2 is required
  1. 集合 不能 转字典类型,因为集合不支持哈希
  2. 列表类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为2
  3. 元组类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为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'


千锋教育Python零基础全套视频教程,7天Python极速入门(含python的评论 (共 条)

分享到微博请遵守国家法律