Python---可变和非可变数据类型

在Python中一共有7种数据类型:

数值(int整型、float浮点类型)、bool类型(True和False)、字符串类型(str)、元组(tuple 1,2,3)、列表(list [1, 2, 3])、字典(dict {key:value})、集合(set {1, 2})

在Python中,我们可以把7种数据类型分为两大类:可变类型 + 非可变类型

① 非可变类型

数值(int整型、float浮点类型)

bool类型(True和False)

字符串类型(str)

元组(tuple 1,2,3)

② 可变类型

列表(list [1, 2, 3])

字典(dict {key:value})

集合(set {1, 2})

如何判断一个数据类型是可变类型还是非可变类型?

在Python中,可变类型与非可变类型主要是通过这个数据类型在内存中的表现形式来进行定义的。

① 可变类型就是在内存中,其内存地址一旦固定,其值是可以发生改变的


a = [1, 2, 3]
print(id(a))

# 向内存中追加新数据(对数据进行改变只能通过数据类型.方法()实现)
a.append(4)
print(id(a))

原理图:

Python---可变和非可变数据类型_第1张图片

② 非可变类型就是在内存中,内存地址一旦固定,其值就没办法发生任何改变了


a = 10
print(id(a))

a = 'hello'
print(id(a))

Python---可变和非可变数据类型_第2张图片

原理图:

Python---可变和非可变数据类型_第3张图片

可变类型与非可变类型在函数中的应用

可变类型


# 定义一个函数
def func(names):
    print(names)


# 定义一个全局变量
names = ['张三', '李四', '王五']
# 调用函数
func(names)

Python---可变和非可变数据类型_第4张图片

原理图:

Python---可变和非可变数据类型_第5张图片

综上所述:可变类型在函数中,如果在全局或局部中对可变类型进行增删改操作,其外部和内部都会受到影响。

不可变类型


# 定义一个函数
def func(num):
    num += 1
    print(num)


# 定义一个全局变量
a = 10
# 调用函数
func(a)
# 在全局作用域中打印a
print(a)

Python---可变和非可变数据类型_第6张图片Python---可变和非可变数据类型_第7张图片

综上所述:不可变类型在函数中,局部或全局的改变对外部和内部都没有任何影响。

你可能感兴趣的:(python,开发语言,pycharm)