Python数据类型有哪些,数据转换的形式,以及容器、数据类型之间转换

Python的数据类型

什么是数据类型?

数据类型是指数据种类、数据表现形式,比如ganyu就是一个字符串,200就是一个数字

目录

常用的数据类型

1、字符串类型(str)

1.1、字符串类型-大字符串

2、数字类型整形(int)

2.1、数字类型-复数(complex)

2.2、数字类型-布尔类型(bool)

3、列表类型(list)

4、元组类型(tuple)

5、字典类型(Dict)

6、集合类型(set)

数据类型总结

数据类型转换

        自动类型转换

        强制类型转换

容器类型转换


常用的数据类型

1、字符串类型(str)

aaa = 'ganyu'
hello = '你好'
bbb = 'ganyu  ganyu'
print(aaa, hello, bbb)

1.1、字符串类型-大字符串

s='''
ganyu。。。。。。。
。。。。。。。。。。
。。。。。。。。。。
。。。。。。。。。。
'''
#如果'''单独使用,是注释的意思,如果前面有变量,则变为大字符串
rea=type(s)
print(s,rea)

2、数字类型整形(int)

ganyu = 1
sganyu = -1
ganyu1 = 3.1111
ganyu2 = 0x10  # 十六进制
ganyu3 = b'001100111'  # 二进制
print(ganyu, type(ganyu), sganyu, type(sganyu), ganyu1, type(ganyu1), ganyu2, type(ganyu2))  # 正负都为整型,小数为浮点类型

2.1、数字类型-复数(complex)

ganyu4 = 5 + 6j
print(ganyu4, type(ganyu4))

2.2、数字类型-布尔类型(bool)

ganyu5 = True  # True,区分大小写,早期python的时候,0表示假,1表示真
ganyu6 = False
print(ganyu5, type(ganyu5), ganyu6, type(ganyu6))

3、列表类型(list)

列表用来表示一系列数据,例如:需要记录一组数字、一组字母或者其他数据

在需要记录多个数据时,可以使用中括号进行定义,并且每个数据之间需要使用逗号进行分割

varlist=[100,0x20,-300,3.14]#定义了多组数字,列表中间存储的数据可以是任意类型,且列表中的每一组数据称为元素
print(varlist)
print(varlist,type(varlist))

那么如何获取列表中的数字呢?

#如果定义多组数据
[100,0x20,-300,3.14]

列表中存储的数据可以通过下标的方式获取

'''
  0    1    2   3
[100,0x20,-300,3.14]
 -4   -3   -2  -1
'''
#按顺序读取,100对应的是0,0x20对应的是1
#按倒序读取,100对应的是-4,0x20对应的是-3

varlist=[100,0x20,-300,3.14]
print(varlist[3],varlist[-1])

列表中的元素可以存储一个列表,称为二级列表或者多级列表或者多维列表

'''
 0 1 2      3      4   5   6
[1,2,3,[11,22,33],'a','b','c']
-7-6-5     -4     -3   -2  -1

#按顺序读取,1对应的是0,[11,22,33]对应的是3
#按倒序读取,1对应的是-7,[11,22,33]对应的是-4

 0  1  2
[11,22,33]
#而小列表中,11对应的是0,22对应的是1
'''
varlist=[1,2,3,[11,22,33],'a','b','c']
print(varlist[3])
print(varlist[3][1])

4、元组类型(tuple)

在定义多个数据时,可以选择使用List列表类型 ,还可以使用元组类型来定义,元组和列表都是用于存储多个数据时使用,非常类似

列表使用中括号进行,元组使用小括号进行定义

区别:

        元组的值无法改变

        列表的值可以改变的

ganyu = (1, 2, 3, 'a', 'b')
print(ganyu, type(ganyu))
print(ganyu[3])

注意在定义元组时,如果元组中只有一个元素,那么需要加逗号,不然定义的就不是元组tuple,如下

ganyu1 = (1)
ganyu2 = (1,)
ganyu3 = (0x20)
print(type(ganyu1), type(ganyu2), type(ganyu3))

分别输出<class 'int'>、 <class 'tuple'>、 <class 'int'>

元组的其他定义方式

ganyu4 = 1, 2, 3, 4
print(ganyu4, type(ganyu4))  # 一样将内容识为数组

列表与元组的区别

列表使用中括号定义,元组使用小括号定义

列表中的值可以被改变,元组中的值不可以被改变,各有好处,如果在开发过程中,想让数组随时发生改变即可用列表,如果一定不要改变,则可以用元组 

5、字典类型(Dict)

字典也是用于存储一组或多组数据时使用,使用大括号来定义

字典是(键值对)的存储方式,如:name:ganyu

键和值之间使用冒号分隔(:),多组键值对之间使用逗号分隔 (,)

键必须是字符串或数字类型,值可以是任意类型

键名不能重复,值可以重复

如记录一本书的信息

vard = {'name': '<<yshen>>', 'user': 'ganyu', 'money': '50'}
print(vard, type(vard))

获取字典中的值

print(vard['name'])

字典中的值可以重复,但是键不能重复(会被覆盖)

vard={'a':'10','b':'20','a':'ganyu'}
print(vard)

6、集合类型(set)

集合使用中括号或者set()方法来定义,是一个无序且元素不重复的集合的数据类型

varb = {1, 2, 3, 'a', 'b', 1}  # 值无法被重复
varc = set('123456')
print(varb, type(varb))
print(varc, type(varc))

 如果需要定义一个空集合的时候,只能使用set()方法,因为大括号是定义空字典

vardd = {}
varde = set()
print(vardd, type(vardd), varde, type(varde))

集合主要用于运算,交集,差集,并集,对称集合

a = {1, 2, 3, 'a', 'b'}
b = {1, 'a', 1000, 2000}

# 交集
print(a & b)

# 差集
print(a - b)  # a集合有,b集合没有的

# 并集
print(a | b)  # 两个集合放到一起,并且去重

# 对称差集
print(a ^ b)

数据类型总结

可变数据类型:列表、字典、集合

不可变数据类型:字符串、数字、元组

容器类型数据;字符串、列表、元组、集合、字典

非容器类型数据:数字、布尔

数据类型转换

什么是数据类型转换?

将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型

为什么需要数据类型转换?作用?

因为不同的数据类型之间不能运算

数据类型转换的形式?

        自动类型转换

        强制类型转换

# 自动类型转换
a = 123
b = True
print(a + b)  # 在做数字运算时 True为数字1,False为数字0,所以当a等于123时,b等于True时候,123+1结果为124
print(12.5 + 22)  # 12.5为浮点类型,22为int类型,
print(True + 3.14)
# 强制类型转换
'''
str()
int()
float()
bool()
list()
tuple()
dict()
set()
'''
# 定义a、b、c、d、e、f、g
a = 123
b = 3.14
c = True
d = [1, 2, 3]
e = (22, 33)
f = {11, 22}
g = {'a': 1, 'b': 2}

ganyu = str(a)
ganyu2 = str(c)
ganyu3 = str(e)
ganyu4 = str(g)
print(ganyu, type(ganyu))
print(ganyu2, type(ganyu2))
print(ganyu3, type(ganyu3))
print(ganyu4, type(ganyu4))
# 可以把所有其他数据类型转换为字符串类型

# 字符串转整形
# 注意:无法转换字符串,但是如果字符串是纯数字,可以转换,其他容器类型都不行
# 测试如下
h = 'love'
i = '123'
# j=int(h)
# print(h,type(j))
k = int(i)
print(k, type(k))

# 浮点类型的转换和int类型一样,不过转换的结果依旧是浮点类型
l = 3
m = float(l)
print(m, type(m))

# bool可以吧其他类型转换为布尔类型的True和False
n = '0'
o = bool(n)
print(o, type(o))

容器类型转换

# 容器类型数据转换

'''
list 列表
'''
# 字符串转换为列表时会把字符串中的每一个字符当做列表的元素
a = '123'
b = 'iloveyou'
ganyu1 = list(a)
ganyu2 = list(b)
print(a, type(a), ganyu1, type(ganyu1), ganyu2, type(ganyu2))
# 数字类型是非容器类型,不能转化为列表
# c = 123
# ganyu3 = list(c)
# print(ganyu3, type(ganyu3))
# 集合可以转化为list列表类型
# 元组可以转化为list列表类型
# 字典可以转化为list列表类型,只保留了字典中的键
d = ['1', '2', '3']
e = (1, 2, 3)
f = {'name': 'ysheng', 'color': 'red'}
ganyu4 = list(d)
ganyu5 = list(e)
ganyu6 = list(f)
print(d, type(d), ganyu4, type(ganyu4))
print(e, type(e), ganyu5, type(ganyu5))
print(f, type(f), ganyu6, type(ganyu6))

'''
tuple 元组
'''
# 数字类型非容器类型,不能转换为元组
# g = 123
# ganyu5 = tuple(g)
# print(g, type(g), ganyu5, type(ganyu5))
h = 'iloveyou'
i = ['1', '2', '3']
j = (1, 2, 3)
k = {'name': 'ysheng', 'color': 'red'}
ganyu6 = tuple(h)
ganyu7 = tuple(i)
ganyu8 = tuple(j)
ganyu9 = tuple(k)
print(h, type(h), ganyu6, type(ganyu6))
print(i, type(i), ganyu7, type(ganyu7))
print(j, type(j), ganyu8, type(ganyu8))
print(k, type(k), ganyu9, type(ganyu9))

'''
set() 集合
'''
# 数字类型非容器类型,不能转换为集合
# l = 123
# ganyu10 = set(l)
# print(l, type(l), ganyu5, type(ganyu5))
m = 'iloveyou'
n = ['1', '2', '3']
o = (1, 2, 3)
p = {'name': 'ysheng', 'color': 'red'}
ganyu11 = set(m)
ganyu12 = set(n)
ganyu13 = set(o)
ganyu14 = set(p)
print(m, type(m), ganyu11, type(ganyu11))
print(n, type(n), ganyu12, type(ganyu12))
print(o, type(o), ganyu13, type(ganyu13))
print(p, type(p), ganyu14, type(ganyu14))

'''
dict  字典
'''
# 数字类型非容器类型,不能转换为字典
# q = 123
# ganyu15 = dict(q)
# print(q, type(q), ganyu15, type(ganyu15))
# 字符串类型不能转换为字典
# r = 'iloveyou'
# ganyu15 = dict(r)
# print(r, type(r), ganyu15, type(ganyu15))
# 列表类型不能转换为字典
# s = ['1','2','3']
# ganyu16 = dict(s)
# print(s, type(s), ganyu16, type(ganyu16))
# 元组类型不能转换为字典
# t = (1, 2, 3)
# ganyu17 = dict(t)
# print(t, type(t), ganyu17, type(ganyu17))
# 二级列表类型可以转换为字典,但是必须为二级列表,且必须每组两个元素
# 二级元组类型可以转换为字典,但是必须为二级列表,且必须每组两个元素
s = [['1', '2'], ['3', '4'], ['5', '6']]
ganyu16 = dict(s)
print(s, type(s), ganyu16, type(ganyu16))

t = (('1', '2'), ('3', '4'), ('5', '6'))
ganyu17 = dict(t)
print(t, type(t), ganyu17, type(ganyu17))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值