Python中数据类型转换

数据类型转换

将数据由当前类型变化为其他类型的操作就是数据类型转换。数据类型转换分为两类,分别是自动数据类型转换 和 强制数据类型转换

自动转换(隐式转换)

自动转换时程序根据运算要求进行的转换,不许要人工干预。

1.自动类型转换不需要人工干预
2.自动类型转换大多发生在运算或者判断过程中
3.转换时向着更加精确的类型转换

intvar = 15

floatvar = 5.5

#运算时 整数15转化成了浮点数15.0

result = intvar + floatvar

#得到的结果是一个浮点型

print(result,type(result))

结果如下:

/usr/bin/python3.5 /home333/PycharmProjects/untitled1/python2/111.py

20.5 <class 'float'>

Process finished with exit code 0

强制转换(显式转换)

根据程序需要,由编写程序人员人为改变数据类型的方式,叫做强制数据类型转换。

int() 将其他类型转换为整形

1.浮点数可以转化为整型  去掉小数部分
2.整型不需要转换
3.布尔值 True -》1 False-》0
4.复数无法转换
5.只有纯整数的字符串才可以转化为整型,其余都不可以
6.列表,元组,字典和集合都无法转换

float() 将其他类型转换为浮点型

1.整数转换为浮点数 添加.0
2.浮点数不需要转换
3.布尔值 True-> 1.0 False -> 0.0
4.复数无法转换
5.纯整型或者纯浮点型字符串可以转换,其他都不可以
6.列表,元组,字典和集合都无法转换

complex() 将其他类型转换为复数类型

1.整型 -> 整数 + 0j
2.浮点型 -> 浮点数 + 0j
3.布尔值 -> True => 1 +0j  False => 0 + 0j
4.复数:无需转换
5.纯整型和纯浮点型字符串可以转化为复数  +0j即可
6.列表,元组,字典和集合都无法转换

bool() 将其他类型转换为布尔类型

转换为布尔值False:

1.整型      0
2.浮点型    0.0
3.复数      0+0j
4.布尔      False
5.字符串    '' 空字符串
6.列表      [] 空列表
7.元组      ()空元组
8.字典      {} 空字典
9.集合      set() 空集合

除了以上这些,其他转换为布尔值都会得到True

str() 将其他类型转换为字符串类型

所有转换均改变类型为字符串,表示方式依旧不变

list() 将其他类型转换为列表类型

字符串:将字符串中的每个字符变成列表中的多个值(元素)
元组:直接改变数据类型,括号变成[]即可
集合:转化为列表的时候顺序是随机的(因为集合是无须数据)
字典:转换为列表的时候顺序也是随机的,仅仅将字典的键取出来组成列表

tuple() 将其他类型转换为元组类型

字符串:将字符串中的每个字符变成列表中的多个值(元素)
元组:直接改变数据类型,括号变成()即可
集合:转化为元组的时候顺序是随机的(因为集合是无须数据)
字典:转换为元组的时候顺序也是随机的,仅仅将字典的键取出来组成元组

set() 将其他类型转换为集合类型

所有其他容器类数据转化为集合:1.所有转化的结果顺序随机,2.所有重复数据只会保留一份
字符串:字符串中的每个值转化为集合的中的值(去重)
列表:列表中的每个值转化为集合中的值(去重)
字典:将字典的所有键进行组成集合即可
元组:将元组中的每个值转化为元组中的值

dict() 将其他类型转换为字典类型

其他类型转化为字典时需要按照指定的格式才可以转化:(列表和元组的组合可以)

#var = [['cat', '黑猫警长'], ['mouse', '一只耳'], ['next', '请看夏季']]
var = [('cat', '黑猫警长'), ('mouse', '一只耳'), ('next', '请看夏季')]
#转换后为 {'cat': '黑猫警长', 'mouse': '一只耳', 'next': '请看夏季'}

 

posted on 2017-11-12 21:53  风过竹影  阅读(504)  评论(0编辑  收藏  举报