python中不可变数据类型有

Python中的数据类型可以分为可变数据类型和不可变数据类型。可变数据类型在修改后会改变它的本身,比如列表、字典等;而不可变数据类型在修改后会创建一个新的对象,原对象并不会改变,比如数字、字符串、元组等。

不可变数据类型一旦创建就无法被修改,这样的特性可以保证数据的安全性。比如,当我们向函数传递参数时,有时候我们不希望函数在内部修改我们传递的参数,这时候可以传递一个不可变类型的对象。还有一些场景,比如程序中的常量,我们也希望它们不被修改,这时候也可以使用不可变类型的对象。

下面我们来讨论Python中的不可变数据类型。

1. 数字

数字是Python中最基本的不可变类型,它表示有理数和复数,并支持加、减、乘、除等基本运算。Python中的数字类型包括整数、浮点数、复数等。

在Python中,数字类型默认是不可变的。如果我们对数字进行修改,实际上是创建了一个新对象并返回它。例如:

```

a = 1

b = a + 1

print(a) # 输出1

print(b) # 输出2

```

2. 字符串

字符串也是Python中的不可变类型,一旦创建,就无法修改。如果尝试改变字符串的值,Python会抛出TypeError异常。

字符串支持很多方法,比如查找、替换、拼接、切片等操作。这里需要注意的是,虽然字符串本身不可变,但是可以通过一些方法生成新的字符串。例如:

```

s = 'hello world'

s.upper() # 返回'HELLO WORLD'

s.replace('world', 'python') # 返回'hello python'

```

3. 元组

元组是另一个不可变类型的Python对象,通常用来存储一组有序的数据。元组中的数据可以是任意类型,包括数字、字符串、列表等。一旦元组被创建,就不能对它的元素进行修改。

```

t = (1, 2, 3, 'hello')

t[0] = 10 # 抛出TypeError异常,元组不可变

```

4. 布尔值

布尔值也是Python中的不可变类型,表示True和False两个值。我们通常用布尔值做条件判断、循环判断等。

5. frozenset

frozenset是Python中的一种不可变集合类型,跟set非常相似,只不过不能修改它的元素。frozenset可以作为字典的键和其他集合操作的操作数。

6. 类型不等式

在Python中,除了具体的值之外,每个对象还属于一个特定的类型,这个类型通常定义了该对象可以完成的一些操作。例如,字符串类型可以拼接、切片等操作,而数字类型支持加、减、乘、除等操作。

如果尝试对不支持的操作进行操作,Python会抛出TypeError异常。例如,对数字和字符串进行加法操作,会抛出TypeError异常。

```

1 + 'hello' # 抛出TypeError异常

```

除了不同类型之间的类型不等式,还有一些常见的运算符不支持某些类型。例如,!=运算符只支持相同类型的对象之间的比较,如果尝试对数字和字符串进行比较,则会抛出TypeError异常。

最后需要注意的是,在Python中,并不是所有的对象都是可哈希的。可哈希(hashable)的对象是指它的标识信息不可变,也就是说它是不可变类型对象。例如,数字、字符串、元组等都是可哈希的,而列表、字典等可变对象则是不可哈希的。

不可变数据类型在Python中非常常用,在日常开发中我们需要注意使用它们。熟悉不可变数据类型的特性和使用方法,可以帮助我们编写出更加稳定和安全的程序。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(68) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部