• Python (2) —— 数据类型转换


    数据类型转换


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

    自动转换(隐式转换)


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

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

    示例代码

    
    newstring = 1.5
    newnum = 1
    print('newnum的类型是:',type(newnum),' newstring的类型是:',type(newstring))
    newvalue = newstring + newnum  #会向更精确的类型转换,所以这里应该是转换为浮点型
    print('newstring + newnum = ',newvalue,'相加后的数据类型是:',type(newvalue))
    

    输出结果如下:

    强制转换(显式转换)


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

    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(0j)
    4.字符串,纯整型和浮点型字符串可以转化,其他都不可以
    

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

    转换为布尔值False:

    1.整型      0
    2.浮点型    0.0
    3.复数      0+0j
    4.布尔      False
    5.字符串    '' 空字符串
    6.列表      [] 空列表
    7.元组      ()空元组
    8.字典      {} 空字典
    9.集合      set() 空集合
    
    除了以上这些,其他转换为布尔值都会得到True
    

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

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

    #列表,元祖,字典,集合四种类型 容器类数据
    #注意:容器类数据之间可以互相转换,其他数据(除了字符串)不能转换为容器数据

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

    示例代码

    var = ('张三','李四','王五')
    newvar = list(var)
    #newvar的值为 ['张三','李四','王五'] 
    
    '''注释:
    1.整形,浮点型,布尔值,复数无法转换!
    2.字符串转换时每个字符转化为列表中的每个值
    3.列表无需转换
    4.元祖只改变类型顺序不变
    5.集合转换为列表,顺序随机
    6.字典转换为列表,仅保留键,舍弃值 '''

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

    示例代码

    var = {'张三','李四','王五'}
    newvar = tuple(var)
    #newvar的值为 ('张三','李四','王五')
    
    '''注释:
    1.整形,浮点型,布尔值,复数无法转换!
    2.字符串转换时每个字符转化为元祖中的每个值
    3.列表只改变类型顺序不变
    4.元祖无需转换
    5.集合转换为元祖,顺序随机
    6.字典转换为元祖,仅保留键,舍弃值!'''

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

    var = ['张三','李四','王老五']
    newvar = set(var)
    #newvar的值为 {'张三','李四','王老五'}  #值的顺序不定
    
    '''注释:
    1.整形,浮点型,布尔值和复数无法转换
    2.字符串将每个字符转换为集合中的每个值,相同的值只会保留一份
    3.列表转换为集合,直接转换,,相同的值只会保留一份美(有序数据转换为无序数据)
    4.元祖转换为集合,直接转换,,相同的值只会保留一份(有序数据转换为无序数据)
    5.集合无需转换
    6.字典转换为集合,仅仅保留键码去掉值 '''

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

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

    ##二级列表  [(),[ ] ,()], 

    ##二级元祖((),[  ],())

    ##二级集合 {(),(),()}

    ###值的长度为2的列表集合或者元素
    var = ('吃饭','睡觉','打豆'') 

    ##转换后为{'吃‘:’饭',‘睡’:‘觉’,'打‘:’豆‘}

    #var = [['cat', '黑猫警长'], ['mouse', '一只耳'], ['next', '请看夏季']]
    var = [('cat', '黑猫警长'), ('mouse', '一只耳'), ('next', '请看夏季')]
    var = {('cat', '黑猫警长'), ('mouse', '一只耳'), ('next', '请看夏季')} #转换后为 {'cat': '黑猫警长', 'mouse': '一只耳', 'next': '请看夏季'}
  • 相关阅读:
    Ubuntu Server 17.04安装GNOME指令
    docker应用笔记
    无线网络连接配置
    bind9的一些配置
    关于linux下的文件权限
    命令行模式下设置时区
    Linux下SSL证书申请以及配置到Nginx
    编译安装Nginx到Linux
    网页画流程图
    为什么Java字符串是不可变对象?
  • 原文地址:https://www.cnblogs.com/w-yumiao/p/8018156.html
Copyright © 2020-2023  润新知