Python中的标准类型(不可改变)

119 阅读3分钟

这是我参与18月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

前言:这两天自己也有在自学Python,今天自己把学习到的Phton中的各种标准类型的知识点梳理一番。

在Python的基本类型中分类,不可改变和可改变两大类

类型的区分:

不可改变的基本类型

在Python中不可改变的基本类型有:数字(Number)、字符串(String)、元组(Tuple)

数字(Number)

在数字类型中Python中包含了整数(int)、浮点数(float)、布尔型(bool),一下我们来看一下代码,以及他们的不可改变性代码如下:

# 各类型代码
a = 1
print(a,type(a))
b = 1.1
print(b,type(b))
c = True
print(c,type(c))

# 判断不可改变性
a = 1
print(id(a))
a = 2
print(id(a))

我们可以得到的结果是

image.png 从下面的2463640518896和2463640518928我们可以看出,我们虽然打印的都是a对象,但是我们得出他们的id是不相同的。

image.png a对象的存储如上所示:我们可以看得到,虽然都是a但是他们的标识id都是不同的,所以int他的值虽然是改变了,但是他是在内存空间中从新开辟了一个存储单元来存储新的a并非是在原先的空间上进行修改,因此数字类型是不可改变的,float、bool同理

字符串(String)

刚说完了Number类型,现在我们来说一下字符串的创建以及他的不可改变性代码如下:

# String类型代码
a = "又菜又想玩的XXX"
print(a, type(a))
# 判断不可改变性
a = "又菜又想玩的XXX"
print(id(a))
a = "又菜又想玩的XXX1"
print(id(a))

image.png 我们可以从以上的代码和打印结果看出,String类型的不可改变性。

元组(Tuple)

下面我们来说一下元祖的创建和他的不可改变性代码如下:

'''形式一'''
#直接创建
a = ('a','b','c')
print("a的类型:",type(a))
#使用内置函数
b = tuple(('a','b','c'))
print("b的类型:",type(b))
#单个元祖
c =('a',)
print("c的类型:",type(c))
'''形式二'''
#直接创建
a1 = 'a','b','c'
print("a1的类型:",type(a1))
c1 = 'a',
print("c1的类型:",type(c1))
print('----------------------------------------------------')
'''判断不可变性'''
yz = ('又菜又想玩','@','XXX')
print(yz,type(yz),id(yz))
yz[1] = '的'
print(yz,type(yz),id(yz))

image.png 从上的报错我们可以看到元祖内的内容是不可改变的。

总结:我们可以看到Python中他的不可修改的特性,他是创建了一个和原来一样的对象,这样就回带来一定的额外开销,我们在写代码的时候尤其是在一个函数体内我们要选择一个适当的类型来作为我们的操作类,这样会程序大数据运算时,我们可以合理的规划内存开销。