python---类型转换&二级容器&缓存机制
Posted ll-mcp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python---类型转换&二级容器&缓存机制相关的知识,希望对你有一定的参考价值。
一.自动类型转换
自动转换遵循规则:
精度从低到高 bool-->int-->float-->complex
例:
1. bool + int
res = True + 100 # 1+100
2. bool + float
res = True + 3.13 # 1.0+3.13
3. bool + complex
res = True + 3-5j # 1+0j + 3-5j
4. int + float
res = 123 + 2.1 # 123.0+2.1
5. int + complex
res = 111 + 3-5j # 111+0j + 3-5j
6. float + complex
res = 2.1 + 4-5j # 2.1+0j + 4-5j
二.强制类型转换
Number (int float bool complex)
int 整型 浮点型 布尔型 纯数字字符串
float 整型 浮点型 布尔型 纯数字字符串
complex 整型 浮点型 布尔型 纯数字字符串(复数也可)
bool Number / 容器类型均可
例:
var1 = 3
var2 = 2.1
var3 = True
var4 = 5+6j
var5 = "123"
int float complex 强制转换
res = int(var2)
res = int(var3)
# res = int(var4) error
res = int(var5)
res = float(var1)
res = complex(var1)
print(res) # 123
bool 类型强制转换
"""Flase十种值
0 , 0.0 , 0j , Flase , ‘‘ , [] , () , set() , {} , None
"""
三.二级容器
就是容器类型里面套类型
例:
lst = [1,2,3,[4,5]]
tup = (1,2,3,(4,5,7))
setvar = {"刘昊然 ","夕雾","丫丫",("嘻嘻","哈哈")}
dic = {"lhr":爱豆,"xw":可爱,"yy":{"a":1,"b":2}}
等长的二级容器:
里面的元素都是容器,并且容器里面的元素个数相同
lst = [(1,2,3),(4,5,6)]
lst = [(1,2),(4,5)]
dict 强制转换成字典
"""强转成字典时,必须是等长的二级容器,里面的元素个数是2个"""
三.变量的缓存机制
机制:只有两个值相同,就开辟一个空间
对于整型int来讲: -5~正无穷范围内相同值 id一致
对于float浮点型来说:非负数范围内相同值 id一致
对于bool类型来说:相同情况下,id一致
对于complex复数类型来说: 实数+虚数 这样的结构下id永不相同 (只有虚数的情况下例外,eg:res = 5j)
对于字符串和空元组来说:相同情况下,id一致
对于列表,元组,集合和字典来说:任何情况下,id标识都不相同(空元组除外)
END
以上是关于python---类型转换&二级容器&缓存机制的主要内容,如果未能解决你的问题,请参考以下文章
InvalidCastException:无法使用Unity(C#)从源类型转换为目标类型
python开发基础:生成式&成员运算&解压法&队列堆栈&数据类型转换