📜  python中的不可变数据类型(1)

📅  最后修改于: 2023-12-03 15:19:27.944000             🧑  作者: Mango

Python中的不可变数据类型

在Python中,有些数据类型是不可变的,也就是说它们的值不可以被改变。相应的,有些数据类型是可变的,它们的值可以被修改。

Python中的不可变数据类型包括:整型(int)、浮点型(float)、布尔型(bool)、元组(tuple)、字符串(str)和不可变集合(frozenset)。

整型和浮点型

整型和浮点型是基本的数字类型,它们的值一旦被创建就不能被修改。尝试修改它们的值会引发一个TypeError异常。

i = 10
i += 1    # i的值被重新赋值为11
i[0] = 0  # TypeError: 'int' object does not support item assignment
布尔型

布尔型是True或False的值。它们也是不可变的,一旦创建,就不能被修改。

b = True
b = False  # b被重新赋值为False
b = not b  # b被重新赋值为True
b[0] = False  # TypeError: 'bool' object does not support item assignment
元组

元组是由一些值组成的有序集合。它们也是不可变的,一旦创建,就不能被修改。

t = (1, 2, 3)
t[0] = 0  # TypeError: 'tuple' object does not support item assignment
字符串

字符串是由字符组成的有序集合。它也是不可变的,一旦创建,就不能被修改。

s = "hello"
s += " world"  # s的值被重新赋值为"hello world"
s[0] = "H"     # TypeError: 'str' object does not support item assignment
不可变集合

不可变集合类似于集合,但是它们的值一旦被创建就不能被修改。

s = frozenset([1, 2, 3])
s.add(4)  # AttributeError: 'frozenset' object has no attribute 'add'

综上,了解不可变数据类型的特点有助于程序员更好地使用这些数据类型。在编写程序时,可以尽可能使用不可变数据类型来避免数据的误修改,提高代码的稳定性和安全性。