变量

变量

什么是变量?(掌握)

变量从字面意思可以理解成:是变化的量。但是这样理解和没有理解貌似没有什么区别。我们首先来想想看你是怎么认识我的,今天来你会认识我,明天来你还会认识我。那你是不是记住我这个人的典型特征。既然人能识别世间万物,那么之前一直把计算机想象成人,那是不是说计算机也能识别时间万物呢?对的。计算机通过记录我们的状态认识我。这就是量的概念。

  • 量:记录现实世界中的状态,让计算机能够像人一样识别世间万物。
  • 变:现实世界中的状态是会发生改变的。

为什么要有变量?(掌握)

对于现实世界,一定是要有一个变量来描述世间万物的。但是计算机为什么也要有变量的概念呢?其实计算机中程序的运行就是一系列状态的变化,如王者账号等级0到30,青铜到王者。

如何用变量?(掌握)

既然知道了变量是什么玩意,那我们如何在Python中定义变量呢?

定义变量

name = 'nick'
age = 19
gender ='male'
height = 180
weight =140

变量的组成

从我们上米昂定义的变量可以看到,变量的组成分为以下三部分:

  1. 变量名:变量名用来引用变量值,但凡需要用变量值,都是要通过变量名。
  2. 赋值符号:赋值
  3. 变量值:存放数据,用来记录现实世界中的某种状态。
name # 报错,无任何意义
age = 18
height = 185
print(age) # 18
print(height) # 185

变量名的命名规范

定义一个变量其实就是记录现实世界中的状态,并且存永远不是目的,去菜市目的。所以变量的命名应该满足一下是三个规范:

  1. 变量的命名应该能反映变量值所描述的状态,切记不可用中文。
  2. 变量名必须用字母数字下划线组成,并且变量名的第一个字符不能是数字。
  3. 关键字不能声明为变量名

变量名的两种风格(了解)

  • 驼峰体
AgeOfnick = 19
print(AgeOfNick) # 19
  • 下划线(针对变量名的命名风格)
age_of_nick = 19
print(age_of_nick) # 19

于以上两种变量名的风格,推荐使用下划线的风格。

常量(掌握)

变量是变化的量,常亮则是不变的量。python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量。如果非要定义常量,变量名必须大写。

AGE_OF_NICK = 19
print(AGE_OF_NICK) # 19
AGE_OF_NICK = 18
print(AGE_OF_NICK) # 18

如果是常量,那就没必要更改,所以python就只制定了一个规范,而没指定的常量的语法。c语言中有专门的常量定义语法,一旦定义的常量被更改即会报错。

注释(掌握)

当你把变量理解透了,你就已经进入了编程的世界。随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有写代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。另外,你以后工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,这会挨打的。所以为了避免这种尴尬的事情发生,一定要增加你代码的可读性。

代码注释分单行和多行注释,单行注释用#,多行注释可以用/双引号,使用三引号注释可以换行。

#单行注释
'''

三单引号注释

三单引号注释

'''

"""

三双引号多行注释

三双引号多行注释

"""

注释的原则

  1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可。
  2. 注释可以使用中文或英文,但不要用拼音。

内存管理

变量存哪了?(了解)

#pl.py
x = 10

当我们p1.py中定义一个变量 x = 10 ,那么计算机把这个变量值10存放在哪里呢?我们回顾计算机的三大核心组件为:CPU、内存和硬盘。一定不是CPU,那是存放在内存还是硬盘中了呢?我们在回顾变量运行的三个过程,如果我们没有使用python解释器运p1.py这个文件,那么 x = 10 很明显只是很普通的四个字符 x、=、1、0。而只有python解释器运行了这个文件,那么字符进入了内存,才会有变量这个概念。也就是说变量是存放在内存当中的。

变量存放内存当中这句话太宽泛了,我们把它具体化。现在想象我们在学校(电脑内存)里上课,学校没开一个班,学校都会开辟一个教室给这个班级上课用(存放变量值10),而班级的门牌号则是(变量名x)。也就是说,对于电脑内存这个大内存,没定义一个变量就会在这个大内存中开辟一个小空间,小空间内存放变量值10,然后内存给这个小空间一个变量名x(门牌号),x指向10.

定义变量的三个特征(掌握)

对于每个变量,python都提供了这三个方法分别获取变量的三个特征,其中python的内置功能id(),内存地址不一样,则id()后打印的结果不一样,因为每一个变量值都有其内存地址,而id是用来翻译变量值在内存中的位置,内存地址不同则id不同。

x = 10
print(x) #获取变量的变量值
print(id(x)) #获取变量的id,可以理解成变量在内存中的地址
print(type(x)) #获取变量的数据类型

变量比较(掌握)

  • 判断变量值是否相等用
name1 = 'egon'
name2 = 'nick'
print(name1==name2)  # False
  • 判断变量id是否相等
x = 11
y = x
z = 11

print(x == y)  # True
print(x is y)  # True
print(x is z)  # True

x = 257
z = 257

print(x is z)  # False

从上述的打印消息可以看出:id相等的变量,值一定相等,值向的是同一个内存地址;值相等的变量,id不一定相等。

其中第一次打印print(x is z)的时候就用到了整数池,这可以理解为python的优化机制,11的值本身不大,并且由于我们快速的再一次使用了11,再由于申请内存空间需要计算机报销,因此python让x和z都指向同一个11。因为存在不是目的,取才是目的,这样进行优化的话并不会影响程序的运行。

posted @ 2019-05-25 19:29  光吃葡萄皮  阅读(145)  评论(0编辑  收藏  举报
回顶部