强制转换类型和变量的缓存机制

    技术2022-07-11  91

    1.强制类型转换 Number(int,float,bool,complex) (1)强制转换成整型 (2) float 强制转换成浮点型 (3) complex 强制转换成复数 (4) bool 强制转换成布尔型 bool类型为假的十种情况 0 , 0.0 , False , 0j , ‘’,[],(),set(),{},None 2.自动类型转换 精度从低向高进行转换 : bool -> int -> float -> complex 自动类型转换,默认从低精度向高精度进行转换(从低到高) 3.容器类型转换 (1) str (容器 / Number 都可以转换) “”“强转成字符串,无非就是在原有的数据的基础上两边套上引号”"" repr 可以原型化输出字符串,不转义字符(显示出引号) (2) list : 强制转换成列表 如果是字符串,会把每一个字符单独的作为一个元素放到列表中 如果是字典,只保留键,形成一套新的列表 如果是其他的容器,只是单纯的在原有数据的基础上换上[] 3) tuple : 强制转换成元组 如果是字符串,会把每一个字符单独的作为一个元素放到元组中 如果是字典,只保留键,形成一套新的元组 如果是其他的容器,只是单纯的在原有数据的基础上换上() (4) set : 强制转换成集合 如果是字符串,会把每一个字符单独的作为一个元素放到集合中(无序,自动去重) 如果是字典,只保留键,形成一套新的集合 如果是其他的容器,只是单纯的在原有数据的基础上换上{} (5) dict 强制转换成字典 “”" 强转成字典时 , 必须是等长的二级容器,里面的元素个数是2个 “”" (1) 外层是列表或者元组或者集合,里面的容器是元组或者列表(推荐) (2) 如何里面是集合,语法上允许,但是有局限性(不推荐) 因为集合无序,不符合定义的本意,不推荐使用 (3) 如果使用字符串,语法上正确,但是有局限性(不推荐) lst = [(“a”,1),“b2”] # 字符串长度只能2个 lst = [(“a”,1),“b23”] error print( dict(lst) ) 4.变量的缓存机制 (仅对python3.6版本负责) 机制: 只有两个值相同,就只开辟一个空间 python3.7 python3.8 –>Number 部分 1.对于整型而言,-5~正无穷范围内的相同值 id一致 var1 = 100 var2 = 100 var1 = -6 var2 = -6 var1 = var2 = -100 # 相同的地址 print(id(var1) , id(var2))

    2.对于浮点数而言,非负数范围内的相同值 id一致 var1 = -5.76 var2 = -5.76 print( id(var1) , id(var2) )

    3.布尔值而言,值相同情况下,id一致 var1 = True var2 = False print( id(var1) , id(var2) ) 4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外) var1 = 3+4j var2 = 3+4j var1 = 90j var2 = 90j print( id(var1) , id(var2) )

    Processed: 0.010, SQL: 9