美文网首页
02-数据类型转换

02-数据类型转换

作者: 蛋挞先生L | 来源:发表于2018-07-22 13:46 被阅读0次

    数据类型转换

    自动转换

    自动转换是说不需要人工干预,程序会自动转换。

    • 程序会朝着更精确的方向进行转换
    • 一般是在运算或者进行判断的时候进行转换

    手动转换

    手动转换是说随着开发者的意志进行转换

    int 整数型转换

    • int 不用转换
    • float 转换之后去掉小数点
    • complext 不能进行转换
    • bool True变成1 False变成0
    • str 只有由整数组成的字符串才能进行转换
    • 列表、元祖、集合、字典都不能进行转换
    val = 1
    print(int(val))
    
    val = 1.6
    print(int(val))
    
    val = 1+1j
    print(int(val))
    
    val = False
    print(int(val))
    
    val = "-1"
    print(int(val))
    

    float类型转换

    • float 不需要转换
    • int 可以转换 转换之后在末尾添加.0
    • complex 不可以转换
    • bool 转换之后 True变成1.0 False变成0.0
    • str 只能由整数或者浮点数组成的字符串可以转换
    • 列表、元组、集合、字典都不能进行转换
    val = 5
    print(float(val))
    
    val = 5+0j
    print(float(val))
    
    val = False
    print(float(val))
    
    val = "1.23"
    print(float(val))
    

    complex转换

    • int 转换之后 在整数后边加0j
    • float 转换之后在浮点数后边加0j
    • str 只有由整数、浮点数、复数组成的字符串能进行转换
    • bool True变成1+0j False变成0j
    • 列表、元组、集合、字典都不能进行转换
    val = 6
    print(complex(val))
    
    val = 6.6
    print(complex(val))
    
    val = "1.2"
    print(complex(val))
    
    val = True
    print(complex(val))
    
    val = False
    print(complex(val))
    

    bool值的转换

    • int 只有 0 变成False
    • float 只有0.0变成False
    • complex 只有0j变成False
    • str 空字符串""变成False
    • list 空列表[]变成False
    • tuple 空元组()变成False
    • set 空元组set()变成False
    • dict 空字典{}变成False
    • 其余的全部转化为True
    val = 3j
    print(bool(val))
    
    val = ""
    print(bool(val))
    
    val = [ ]
    print(bool(val))
    
    val = (1,)
    print(bool(val))
    
    val = set()
    print(bool(val))
    

    list转换

    • int 不可以转换
    • float 不可以转换
    • complex 不可以转换
    • bool 不可以转换
    • str 把每个字当作一个元素添加到列表当中
    • tuple 直接把元组内的元素放到列表当中
    • set 直接把集合里边的元素放到列表当中
    • dict 只把字典的键取出来作为元素放到列表当中
    val = 1
    val1 = list(val)
    print(val1,type(val1))
    
    val = 1.6
    val1 = list(val)
    print(val1,type(val1))
    
    val = True
    val1 = list(val)
    print(val1,type(val1))
    
    val = "大金链子小手表"
    val1 = list(val)
    print(val1,type(val1))
    
    val = (1,2)
    val1 = list(val)
    print(val1,type(val1))
    
    
    val = {1,2,3,4}
    val1 = list(val)
    print(val1,type(val1))
    
    val = {"a":1,"b":2,"c":3}
    val1 = list(val)
    print(val1,type(val1))
    

    str 转换

    • int、float、complex、bool均可以直接转换
    • list、tuple、set、dict均直接把本身的格式转换成字符串
    • 所有数据类型转换成 str 都是在原有的格式两边各增加一个引号
    
    # int
    int1 = 2
    str1 = str(int1)
    print(str1,type(str1))
    
    # float
    float1 = 1.2
    str2 = str(float1)
    print(str2,type(str2))
    
    # complex
    complex1 = 1+2j
    str3 = str(complex1)
    print(str3,type(str3))
    
    # bool
    var = False
    str4 = str(var)
    print(str4,type(str4))
    
    # list
    list1 = [1,2,[3,4]]
    str5 = str(list1)
    print(str5,type(str5))
    
    # tuple
    tuple1 = (1,2,3,4)
    str6 = str(tuple1)
    print(str6,type(str6))
    
    # set
    set1 = {1,2,3,}
    str7 = str(set1)
    print(str7,type(str7))
    
    # dict
    dict1 = {1:"a",2:"b",3:"c",4:"四大名著"}
    str8 = str(dict1)
    print(str8,type(str8))
    

    tuple 转换(与list转换相似)

    • int、float、comple、bool 均不能转换
    • str 可以转换,同样每个字符都作为一个元素放入列表中
    • list 可以转换,把元素放入列表中,内部嵌套的数据类型不会被转换
    • set 可以转换,把元素放入列表中,内部嵌套的数据类型不会被转换
    • dict 可以转换,但是只有键作为元素放入元组中
    # int
    # int1 = 1323
    # print(tuple(int1))
    
    # float
    # float1 = 3.1415926
    # print(tuple(float1))
    
    # complex
    # complex1 = 1+3j
    # print(tuple(complex1))
    
    # str
    str1 = "大金链子小手 表"
    print(tuple(str1))
    
    # list
    list1 = [1,2,{3,4}]
    print(tuple(list1))
    
    # set
    set1 = {3.4,5.6,234.5}
    print(tuple(set1))
    
    # dict
    dict1 = {1:"a",2:"b",3:"c"}
    print(tuple(dict1))
    

    set 转换

    • int、float、complex、bool 均不能转换

      str 可以转换,每个字符作为一个元素放入集合中

      list 可以转换无嵌套或者嵌套元组的列表,其他的嵌套不可以

      tuple 可以转换无嵌套或者嵌套元组的元组,其他的嵌套不可以

      dict 可以转换,转换后的只有键作为元素放入集合内

    # int
    # int1 = 1
    # print(set(int1))
    
    # float
    # float1 = 0.0
    # print(set(float1))
    
    # complex
    # complex1 = 0j
    # print(set(complex1))
    
    # str
    str1 = "有纹身的都 怕热"
    print(set(str1))
    
    # list
    list1 = [1,23,4,(1,2)]
    print(set(list1))
    
    # tuple
    tuple1 = 1,2,4,(1,23)
    print(set(tuple1))
    
    # dict
    dict1 = {1:"a",2:"b",3:(1,23)}
    print(set(dict1))
    

    dict 转换

    • 空字符串、空列表、空元组、空集合均可转换为空字典
    • 如果存在二级嵌套,二级嵌套的数据类型只有两个元素时,二级嵌套的第一个元素为完全不可更改元素[1]或者单元素时,以第一个元素为键,第二个元素为值进行转换
    • 其他数据类型均不能转换为字典类型
    • [1] 单层元组或嵌套元组的元组为完全不更改元素,元组中嵌套列表、字典、集合后即不为完全不可更改元素
    # int  不可转换
    # int1 = 12
    # dict1 = dict(int1)
    # print(dict1,type(dict1))
    
    # float  不可转换
    # float1 = 12.3
    # dict2 = dict(float1)
    # print(dict2,type(float1))
    
    # complex 不可转换
    # complex1 = 1+2j
    # dict3 = dict(complex1)
    # print(dict3,type(dict3))
    
    # bool  不可转换
    # bool1 = True
    # dict4 = dict(bool1)
    # print(dict4,type(dict4))
    
    # str   只有空字符串可以转换
    str1 = ""
    dict5 = dict(str1)
    print(dict5,type(dict5))
    
    # list
    list1 = []
    dict6 = dict(list1)
    print(dict6,type(dict6))
    
    list2 = [[1,2],[3,4],[5,6]]
    dict6 = list2
    print(dict6,type(dict6))
    
    list3 = [[(1,2),[5,6]],(3,4),]
    dict6 = list3
    print(dict6,type(dict6))
    
    
    # tuple
    tuple1 = ()
    dict7 = dict(tuple1)
    print(dict7,type(dict7))
    
    tuple2 = ({1,5},[2,3])
    dict7 = dict(tuple2)
    print(dict7,type(dict7))
    
    tuple3 = (((1,),5),[2,3])
    dict7 = dict(tuple3)
    print(dict7,type(dict7))
    
    # set
    set1 = set()
    dict8 = dict(set1)
    print(dict8,type(dict8))
    
    set2 = {(1,2),(3,4)}
    dict8 = dict(set2)
    print(dict8,type(dict8))
    

    相关文章

      网友评论

          本文标题:02-数据类型转换

          本文链接:https://www.haomeiwen.com/subject/ctvlmftx.html