在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))
原理图:
② 非可变类型就是在内存中,内存地址一旦固定,其值就没办法发生任何改变了
a = 10 print(id(a)) a = 'hello' print(id(a))
原理图:
可变类型与非可变类型在函数中的应用
可变类型
# 定义一个函数 def func(names): print(names) # 定义一个全局变量 names = ['张三', '李四', '王五'] # 调用函数 func(names)
原理图:
综上所述:可变类型在函数中,如果在全局或局部中对可变类型进行增删改操作,其外部和内部都会受到影响。
不可变类型
# 定义一个函数 def func(num): num += 1 print(num) # 定义一个全局变量 a = 10 # 调用函数 func(a) # 在全局作用域中打印a print(a)
综上所述:不可变类型在函数中,局部或全局的改变对外部和内部都没有任何影响。