今天想要写的是python中比较简单但是又相对重要的数据类型之间的互相转换。所谓数据类型转换其实很简单,生活中就有很多的例子,比如:15+2.2=17.2,看着好像只是一次普通的数学运算,但是却存在了一次数据类型之间的转换。“15”在数据类型中被称为整型,“2.2”在数据类型中则被称之为浮点型,那么在我们的程序中整型是没办法直接和浮点型的数据进行运算操作,这时候我们可爱的python就偷偷的将“15”转化成了“15.0”的浮点型数据,这样浮点型数据之间就可以做到运算等相关的操作,这就是我们首先要说的自动数据类型转换。
首先我们要知道的是数据类型转换分为自动数据类型转换(隐式数据类型转换)和强制数据类型转换(显式数据类型转换)两种。接下来第一个首当其冲要被拿来开刀的就是自动数据类型转换。
所谓自动数据类型转换很简单啊,字面意思,系统自己偷偷地把数据进行合适的转换。那么自动数据类型转换的特点呐,分为以下三点:
1.自动数据类型转换由程序自动执行,不需要人工干预
2.自动数据类型转换多发生在运算和判断过程中
3.自动数据类型转换会向着更加精确的类型转换
下面我们来举个“栗子”简单的看一下:
intvar = 15
floatvar = 2.2
#运算时整数15转化成了浮点数15.0
result = intvar + floatvar
print(result)
亦或者是在判断的时候:
if 0 :
print(“我们都爱小饼饼,我喊小饼饼,你们说爱~”)
print(“小饼饼~”)
print(“爱~”)
这就是自动数据类型转换的部分,那么接下来就介绍一下我们的重头戏吧,下面有请强制数据类型转换登场,?(^?^*) (我将会以各种“栗子”的方式来介绍下面的所有类型)
1.int() 强制将其他数据类型转换为整型:
(1).浮点数可以转化为整型 --> 去掉小数的部分
(2).整型 --> 额。。。整型就是整型啦,不需要再进行转换了
(3).布尔值:True --> 1 False --> 0
(4).复数:额,因为是虚拟的不存在的,所以无法进行强转
(5).字符串:只有纯整数的字符串才可以转化为整型,其他的统统都不可以,即使你大爷是“马爸爸”也不行哦
(6).那么剩下的列表、元组、字典、集合也一样很抱歉,你们长得太丑,int并不喜欢你们,所以也不会给你们进行强转
2.float() 强制将其他数据类型转化为浮点型
(1).整数转换为浮点数 --> 在整数的末尾添加“.0”即可
(2).浮点数就是浮点数啦,不需要再转换了
(3).布尔值 True --> 1.0 False --> 2.0
(4).复数还是老问题,没法进行转换
(5).字符串:纯整型或者纯浮点型字符串才可以转换,其他的统统不可以
(6).列表、元组、字典、集合不仅不招int的待见,就连float都嫌弃他们,真可怜0.0
3.bool() 将其他数据类型转换为布尔值
接下来的转化为布尔值False的情况,其他的都是True:
(1).整型的 0
(2).浮点型的 0.0(注意,这是零点零,不是我发的表情= =)
(3).布尔值的 False
(4).复数的 0j 或者是 0+0j
(5).字符串的空字符串 ‘ ’
(6).列表中的空列表 [ ]
(7).元组的空元组 ( )
(8).字典中的空字典 { }
(9).集合中的空集合 set( )
4.complex() 将其他数据类型转换为复数
(1).整型 --> 整数部分 + 0j
(2).浮点型 --> 浮点数部分 + 0j
(3).布尔值 --> True ==> 1 + 0j False ==> 0 + 0j
(4).复数:额还是老样子,复数就是复数,不需要再转换了
(5).字符串:纯整型和纯浮点型字符串可以转化为复数,只需要在最后加上“0j”即可
(6).哎,列表、元组、字典、集合依旧无法转换
5.str() 将其他数据类型转化为字符串
str在所有的强制数据类型转换中应该属于老好人一样的存在,因为所有类型的值都是可以直接转换为字符串类型,值保持不变(也可以理解为在所有数据的两侧加了字符串的引号而已)
6.list() 将其他数据转化为列表
(1).字符串:将字符串中的每个字符变成列表中的多个值(元素)
(2).元组:直接改变数据类型,括号由()变成 [ ] 即可
(3).集合:转化为列表的时候顺序是随机的(因为集合本身就是无序的数据)
(4).字典:转换为列表的时候顺序同样是随机的,仅仅会将字典的键取出来组成列表
7.tuple() 将其他数据类型转换为元组
(1).字符串:将字符串中的每个字符变成列表中的多个值(元素)
(2).列表:直接改变数据类型,括号由 [ ] 变成()
(3).集合:转化为元组的时候顺序是随机的(还是因为集合本身是一堆无序的数据)
(4).字典:转换为元组的时候顺序也是随机的,仅仅将字典的键取出来组成元组
8.set() 将其他数据类型转换为集合
特点:所有转化的结果顺序随机;所有重复数据只会保留一份
(1).字符串:字符串中的每个值转化为集合中的值(去重)
(2).列表:列表中的每个值转化为集合中的值(去重)
(3).字典:将字典的所有键组成集合即可
9.dict() 将其他数据类型转换为字典