【Python培训班】盘点Python中的5个容易混淆的概念!
老男孩IT教育
行业新闻
2022年1月14日 16:08
对于0基础小白来说,往往在Python学习过程中,会遇到各种各样的问题,容易使大家丧失学习自信心和动力,本篇文章整理了一些Python语言中比较容易混淆的5个概念,希望能帮助到大家,请看下文:
对于0基础小白来说,往往在Python学习过程中,会遇到各种各样的问题,容易使大家丧失学习自信心和动力,本篇文章整理了一些Python语言中比较容易混淆的5个概念,希望能帮助到大家,请看下文:
1、==和is
在Python语言中,一切皆对象,而对象中又包括:编号、类型、值,因此,A == B比较的是对象A和对象B的值是否相等,A is B比较的则是对象A和B的编号是否相等,要牢记这一点。
2、变量赋值和别名
Python变量赋值是指创建一个对象并绑定到某个变量上,如下创建一个列表对象,并赋值给变量a
a=[1,2,3]
以上基本范式可表达为:
variable1 = object1
而别名是指变量1赋值给变量2的过程:
variable2 = variable1
比如:b=a,并且修改变量b
,变量a也会变化,所以被称为别名:
b[0] = 8 # a[0] 也会变为8
3、别名和浅拷贝
这两个概念也常被混淆,别名如上所述仅仅是某个变量赋值给某个变量,仅此而已,而浅拷贝已经发生一层复制,并且在这一层上修改某个变量不会影响另一个变量,如下:
b = a.copy()
b[0] = 8 # 此时修改b[0]不会影响a
4、浅拷贝和深拷贝
对象是可以做有限次嵌套的,可以有很多层,浅拷贝只拷贝最外层,而深拷贝会拷贝很多层。
a = [[3,1,2], [5,4,6]]
浅拷贝意味着修改b的第一层不影响a,但是修改b的第二层会同步影响到a,如下修改第二层会同步影响a
from copy import copy
In [8]: b=copy(a)
In [9]: b[0][0]=8
In [10]: a
Out[10]: [[8, 1, 2], [5, 4, 6]]
In [11]: b
Out[11]: [[8, 1, 2], [5, 4, 6]]
而深拷贝后,修改b的任意层都不会影响a。
5、可变和不可变
每个对象都有类型,当我们讨论可变和不可变时,其实代指的就是类型,不可变的类型常见的有:整型、字符串、浮点型、元组、冻结集合,可变的类型常见的有:列表、字典、集合,不可变也就意味着值不能被修改,如下修改元组的值,会抛出TypeError的异常,这也是和类型密切相关的异常:
a = (3,1)
a[0] = 10
TypeError: 'tuple' object does not support item assignment
而可变意味着值能被修改:
In [14]: a = [3,1]
In [15]: a[0] = 10
In [16]: a
Out[16]: [10, 1]
关于"盘点Python中的5个容易混淆的概念!"的话题到这里就结束了,如果你想要快速掌握Python技术,就来老男孩IT教育吧!老男孩教育是Python培训领域的专家,2012年就开展了Python培训,是行业内较早的Python培训机构,积累了大量的Python培训教学经验,并能全局把控企业用人标准,科学的制定了Python教学课程体系,满足5-8年职业生涯需求,让学员轻松拿下高薪职位!
推荐阅读:
8个Python数据清洗代码,拿来即用!老男孩python培训课程
