1.Python有哪些数据类型
数据类型 | 赋值案例 | 可变性 |
---|---|---|
整型 int | a = 1 | 不可变 |
浮点型 float | a = 1.0 | 不可变 |
复数类型 complex | a = 1 + 3j | 不可变 |
布尔类型 bool | a = True | 不可变 |
字符串 str | a = 'hello world' | 不可变 |
元组 tuple | a = (1, 2, 3, 4, 5, 6) | 不可变 |
列表 list | a = [1, 2, 3, 4, 5, 6] | 可变 |
集合 set | a = {1, 2, 3, 4, 5, 6} | 可变 |
字典 dict | a = {20231130: '大帅哥'} | key:不可变,value:可变 |
可变性是什么呢?
可变性数据类型的值可以被改变,例如添加、删除或修改元素
不可变性数据类型的值不能被改变,例如不能添加、删除或修改元素。
想要改变不可变数据类型的值如下图
如上图所示,改变int数据类型的值时需要重新赋值,而重新赋值,改变的并不是9001内存地址指向空间里的数据42,而是在内存中重新开了一块空间,有了指向这块空间的新的内存地址9002,然后用9002覆盖变量名指向空间中储存的地址。而储存数据42的这块空间,没有变量名再“牵着”它,它将会被GC(垃圾回收器)回收,不再占用内存。
所以,如果要改变这些不可变数据类型的值,只能重新创建一个新的对象。
2.Python数据类型转换
转换类型 | 结果 = 目标类型(待转类型) | 总结知识点 |
其他类型转换为int类型 | result = int('8') # 8 result = int(8.8) # 截断 8 result = int(True) # 1,False则是0 | 当将str类型转换成int类型,待转数据必须"长得像"整型,比如"8",而"8.8"则程序会报错。 当浮点转换为整型,结果会截断,什么是截断,就是小数部分不要了。 |
其他类型转换为float类型 | result = float('8.8') # 8.8 result = float(8) # 8.0 result = float(True) # 1.0,False则是0.0 | 当将str类型转换成float类型,待转数据必须"长得像"整型或浮点型,比如"8"或"8.8",如"abc"则会报错。 |
其他类型转换为str类型 | 结果 = 目标类型(待转类型) | 任何数据类型都可转换为字符串,没有什么限制。 |
其他类型转换为bool类型 | bool(0), bool(""), bool([]), bool({}),bool("0.0"),bool(()), bool(None) # 这些都返回的是False,除了这些,其他的数据都返回True | 任何的数据都能转换为bool类型,除了刚才提到的哪些每个数据类型中的空值外,其他的都返回True, 这个特性常用在判断语句中,如 if a: print("执行a不为空时的代码") |