老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

【Python培训班】盘点Python中的5个容易混淆的概念!

老男孩IT教育

行业新闻

2022年1月14日 16:08

对于0基础小白来说,往往在Python学习过程中,会遇到各种各样的问题,容易使大家丧失学习自信心和动力,本篇文章整理了一些Python语言中比较容易混淆的5个概念,希望能帮助到大家,请看下文:

       对于0基础小白来说,往往在Python学习过程中,会遇到各种各样的问题,容易使大家丧失学习自信心和动力,本篇文章整理了一些Python语言中比较容易混淆的5个概念,希望能帮助到大家,请看下文:

python培训机构

       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培训课程

       Python语言中函数参数都有哪些类型?老男孩Python线下面授班

       【Python技术分享】使用Python语言修改列表元素的小技巧!

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。