更多课程 选择中心


Python培训

400-996-5531

python|变量的基础知识梳理

  • 发布:钟伟
  • 来源:沁机迈可思
  • 时间:2018-01-29 11:31

对于python的初学者来说,了解它的基础知识是很重要,同时也是很必要的。

我也不止一次听到有人说:

“要学习python其实很简单,去模仿他人的代码。从模仿开始也就不会那么痛苦了,而且学习也会高效。”

这是的确一种很有效的学习方法。就如同我们联系英语口语一样,多模仿、多用,就能说的很好。毕竟英语的很多使用场景几尽是相同的。而且我们作为普通大众,学习一门外语的最终目的不是创造一门语言,而是使用,所以也就不需要对英语进行一个系统化、结构化的学习。因此,在英语的学习中,模仿式的学习,对大众而言是一个比较科学的方法。

但是,学习一门计算机语言并不适合这样。这是因为我们学习计算机语言的核心不仅仅是会用它。我们还要用它来解决身边的实际问题。更何况,在未来你极有可能遇见与别人相似但不完全一样的问题,那这个时候,完全沿用前人的经验和方法可能并不适和。所以需要你举一反三的去创造一个适合当下的解决方案。但如果要达到这样的目的,就定少不了我们对python进行一个系统化、结构化的学习了。而在python系统化、结构化的学习中,基础知识和基本语法的学习,就显得尤为重要了。

所以,今天依旧来家梳理一个python中比较基础的概念——变量。

要了解变量,我们首先要知道变量是啥对吧。在wiki上,它这样定义:

变量是与一个有联系的、有一定象征意义的名字相对应的存储地址。它包含有大量知名或未知的可当作值来查询的信息。

有一点难懂。不急,咱们翻译一下:

变量,其实就是一个名字,它是指一个值的名称。

上图中的“a”,就是一个变量,它对应的值是1,所以“a”是值“1”的名字,我们称之为变量。中间的等号,通常被称为“赋值符号”。但要注意的是,所谓的变量并不是任何元素都可以胜任,在选择变量名的时候需要注意以下两点:

它可以是字母、数字和下划线三种元素的任意组合,但是首位元素一定不能是数字。

不要与系统的关键字抢饭碗。

第一点比较好理解,这是python自身的语法要求。而第二条存在的意义就在于,系统中的关键字一般来说都是有一定意义和使用场景的,如果将某个值赋值给一个系统关键字,极有可能影响到后续这个关键字的使用,毕竟它的意义已经不在是默认的那个意义了。

除了以上变量的定义和命名规则之外,我们在学习变量的时候,还应留意一个知识点:值类型与引用类型。先来看一段代码。

几乎同样的都是将“a”的赋值给变量“b”,然后更改“a”的值,为什么打印出来的变量“b”的值,会不一样呢?先来解释第一种情况。

首先,当我们第一次赋值给“a”的时候,再把“a”赋值给变量“b”,这个时候就和一定中情况一样,系统中已经默认变量“b”的值,等于1。而后当我们更改变量“a”所赋值为“3”的时候,由于数字类型是不可变的,所以变量“b”在此前已经默认了的值,并不会随着变量“a”的变化而变化,所以出现了上图中的第二种情况。

如果要用python自己来解释的话,就是内存地址的改变与不改变,需要用到id函数。

就如上图所示的那样,变量“a”的值,在变更了值后,它前后的内存地址是不一样的(间椭圆标识),而变量“b”的地址,在变量“a”更改前后,一直是恒等的(见方框标识)。所以,在变量“a”因为更改了值而改变了内存地址的时候,变量“b”并不会随之改变。同样的情况,还出现在字符串类型和元组类型的身上。因为字符串和元组也是两个不可变的数据类型。

要验证的原理很简单:既然是不可变的类型,那就是说,我们不能更改其中的某个元素。

正如我们所想的那样,当我们试图对字符串和元组类型中某个元素进行改变的时候,系统会直接报错。所以,到这儿我们可以下一个结论:数字类型、字符串类型与元组类型在python中是不可变对象,属于值类型的范畴,它们不会因为所赋值变量的更改而改变内存地址。

好,讲了值类型的不可变,现在来说说引用类型的可变性。

与数字类型不同,列表类型在更改了变量“a”的值过后,变量“b”的值也随之改变了。这是因为列表类型在更改了其中某个元素的值后,此列表的内存地址并不会改变。我们还是用id函数来检验一下。(插入图片)

留意一下红色框框里的值,当变量“a”中的某个元素改变的时候,它的id地址是不是没有发生改变?这也是为什么变量“b”的值,会自动的对应到修改后的变量“a”的值上。

看到这里,我相信你或多或少会有所疑问,为什么python中会出现这样的情况呢?这是因为python是一个面对对象的计算机语言,在python中,一切都是对象,一切值的传递都是对象的引用。而对象的引用就牵扯到了地址,因此地址不变,变量的值也就不会变化。

本文内容转载自网络,本着传播与分享的原则,来源/作者信息已在文章顶部表明,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:python的模块module介绍
下一篇:Python语法及规则:数字类型说明

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省