【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

可变数据类型:列表、字典、集合
不可变数据类型:字符串、数字、元组

容器类型数据:字符串、列表、元组、集合、字典
非容器类型:数字、布尔

数据类型转换
  1. Q:什么是数据类型转换?
    A:把一个数据类型转换成另一个数据类型。例:字符串转换为数字
  2. Q:为什么要数据类型转换?
    A:不同数据类型之间不能运算
  3. 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'>
posted @ 2020-05-30 19:42  shai沙海  阅读(208)  评论(0编辑  收藏  举报