码迷,mamicode.com
首页 > 编程语言 > 详细

python---类型转换&二级容器&缓存机制

时间:2020-07-01 20:25:10      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:字符串   bsp   范围   变量   浮点型   结构   dict   number   标识   

一.自动类型转换

自动转换遵循规则:

精度从低到高 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---类型转换&二级容器&缓存机制

标签:字符串   bsp   范围   变量   浮点型   结构   dict   number   标识   

原文地址:https://www.cnblogs.com/ll-mcp/p/13221112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!