【Python学习笔记01】数据类型
笔记
2、数字类型
- int 整型
- float 浮点型
- complex 复数
- bool 布尔类型(True,False)
- 数字类型 Number
varn = 532 varn = -1111 # int varn = 3.123 # <class 'float'> varn = b'00110001' # <class 'bytes'> varn = 5+6j # (5+6j) <class 'complex'> 复数 print(varn,type(varn)) #布尔(bool)类型(True,False) 注意大写 varn = True #True <class 'bool'> varn = False #False <class 'bool'> # 数值类型可参与运算 print(varn,type(varn))
3. list列表类型
- 列表用来表示一系列数据,例如:需要记录一组数字或其他数据
- 在需要记录多个数据时可以使用“[]”进行定义并且用“,”分隔
varlist = [190,123,461,67] print(varlist,type(varlist)) #<class 'list'>
- 列表中存储的数据可以是任意类型
varlist = ['a',92,'汉字'] print(varlist,type(varlist)) #<class 'list'>
- 列表中的下标
''' 0 1 2 3 4 ['a','b',98,'pai',2432] -5 -4 -3 -2 -1 ''' varlist = ['a','b',98,'pai',2432] print(varlist[0]) #a print(varlist[-4]) #b print(varlist[3]) #pai # 列表中元素的值可以是任意类型 # 那么列表中元素的值可不可以存储一个列表。 # 称为二级列表(多维列表)或者多级列表(多维列表) varlist = ['a',[1,2,'pai',3],98,'yes',2432] print(varlist,type(varlist)) #可以 嵌套的列表算一个下标 print(varlist[1]) #[1, 2, 'pai', 3] print(varlist[1][2]) #pai
4. tuple元组类型
- 在定义多个数据内容时,可以选择使用List列表类型
- 还可以使用元组类型来定义,元组和列表非常像,都适用于存储多个数据时使用
- 元组使用小括号()进行定义,列表使用中括号[]进行定义
- 元组的最大特点:值不能被改变
# tuple vart = (1,2,3,'a','b','c') print(vart,type(vart)) # <class 'tuple'> # 元组的其它定义方式 vart = 1,2,3 print(vart,type(vart)) # <class 'tuple'>
注意在定义元组时,如果元组中只有一个元素,需要加“,",不然就不是元组类型了
vart = (1,) print(vart,type(vart)) # (1,) <class 'tuple'>
列表与元组的区别
- 符号使用的区别
- 列表中的值可以被改变,元组不可以
- ————注意数据类型的操作
# 定义列表 varl = [1,2,3] # 通过下表来修改元素的值 varl[2] = 33 print(varl) # [1, 2, 33] # 定义元组 ----报错!!! vart = (1,2,3) vart[2] = 33 # print(vart)
5. dict字典类型
- 字典也是用于存储一组或多组数据时使用,使用大括号{}来定义
- 字典是键值对数据存储方式 name : admim
- 键必须是字符串或数字类型,值可以是任意类型
- 键名不可以重复,值可以重复
tip:在python之前的版本中,字典是无需的
# 比如需要记录一本书的相关数据 书名,作者,价格,类型等 <p class="mume-header " id="比如需要记录一本书的相关数据-书名作者价格类型等"></p> vard = {'title':'《鬼谷子》','author':'鬼谷子','price':'29.99'} print(vard,type(vard)) # print(vard,type(vard)) # 获取字典中的值 <p class="mume-header " id="获取字典中的值"></p> print(vard['title']) #《鬼谷子》
# 字典中键名不能重复使用,否则后面的覆盖前面的 <p class="mume-header " id="字典中键名不能重复使用否则后面的覆盖前面的"></p> vard = {'a':10,'b':9,'a':'aa',1:111,'2':"222"} print(vard,type(vard)) # {'a': 'aa', 'b': 9, 1: 111, '2': '222'} <class 'dict'>
6. set集合类型
- set集合是一个 无序且元素不重复的 集合的数据类型
- set集合使用 中括号或者set()方法来定义
- 如果需要定义一个空集合,只能使用set()方法,因为{}时定义的空字典
vars1 = {} print('vars1:',vars,type(vars1)) #vars1: {1, 2, 3, 'a', 'b'} <class 'dict'> vars = set() print(vars,type(vars)) # set() <class 'set'>
- 集合主要用于运算,交集,差集,并集,对称集合
a = {1,2,3,'a','b'} b = {1,'a',22,33} print(a & b) # 交集 {1, 'a'} print(a - b) # 差集 {2, 3, 'b'} a集合有,b集合没有 print(a | b) # 并集 {1, 2, 3, 33, 'b', 22, 'a'} 两个集合放在一起,并且去重 print(a ^ b) # 对称差集 {2, 33, 3, 'b', 22} 把重复的内容去掉
# 集合的定义方式 <p class="mume-header " id="集合的定义方式"></p> vars = {1,2,3,'a','b'} # vars = set('123456') #无序显示 <p class="mume-header undefined" id="vars-set123456-无序显示"></p> print(vars,type(vars)) # <class 'set'>
a = {1,2,3,'a'} # 给集合添加元素 <p class="mume-header " id="给集合添加元素"></p> a.add('b') # 无法获取集合中的单个元素,但是可以添加和删除 <p class="mume-header " id="无法获取集合中的单个元素但是可以添加和删除"></p> print(a.discard(1)) # 删除a中的元素'a' print('a:',a) # 检查当前的元素是否在集合中 <p class="mume-header " id="检查当前的元素是否在集合中"></p> print(1 in a) #False
7. 数据类型转换
字符串 String
数字类型 Number
整型 int
浮点型 float
复数 complex
布尔 bool
列表 list
元组 tuple
字典 dict
集合 set
可变数据类型:列表、字典、集合
不可变数据类型:字符串、数字、元组
容器类型数据:字符串、列表、元组、集合、字典
非容器类型:数字、布尔
数据类型转换
- Q:什么是数据类型转换?
A:把一个数据类型转换成另一个数据类型。例:字符串转换为数字 - Q:为什么要数据类型转换?
A:不同数据类型之间不能运算 - Q:数据类型转换形式?
A:自动类型转换、强制类型转换
- 自动类型转换
- 当两个不同的值进行运算时,结果会向更高精度的数字类型进行计算
- True ==> 整型 ==> 浮点型 ==> 复数
a = 123 b = True # 在和数字运算时,True转为数字1,False转为数字0 print(a + b) # 124 print(12.1+2) # 14.1 浮点型+整型 print(True + 1.23) # 2.23 print(True + False) # 1
强制类型转换
下面的函数可以把其他类型的数据转换为对应的数据类型
str()
int()
float()
bool()
list()
tuple()
dict()
set()
a = {'a':1,'b':2} # dict res = str(a) print(a,type(a)) print(res,type(res)) # <class 'str'> a = 12.33 res = int(a) print(res,type(res)) # 12 <class 'int'>
- bool可以把其他类型转换为布尔类型的True和False
- 需要总结,哪些情况转bool的结果为false
'0' True
'' False
0
0.0
False
(),{},[],set()
8. 容器类型数据转换
list 列表
- 数字类型是非容器类型,不能转换为列表
- 字符串转换为列表时,会把字符串中每一个字符当作列表元素
- 集合可以转换为列表list类型
- 元组可以转换为列表list类型
- 字典 可以转换为列表list类型,但 只保留了字典中的 键 (默认)
n = '12.3' res = list(n) print(n,type(n),res,type(res)) # 12.3 <class 'str'> ['1', '2', '.', '3'] <class 'list'>
tuple 元组
- 数字类型 非容器类型,不能转换为元组
- 其他容器类型的数据进行转换时,和列表一样
set 集合
- 同上
dict 字典
- 数据类型 非容器类型,不能转为 字典
- 字符串不能直接转换为 字典
- 列表、元组 可以转换为字典,要求是一个二级列表、元组,并且每个二级元素只能有 两个值
- 集合无法转换为 字典
n = [[1,2],['a','b'],[3,'c']] # 二级容器 res = dict(n) print(res,type(res)) # {1: 2, 'a': 'b', 3: 'c'} <class 'dict'>