每个整数、小数、字符串,还有我们后面要学的 字典、元组、列表 等, 都是对象。
在Python程序运行的时候,这些对象 其实就是 内存中的一段数据 。
我们的程序是经常要操作这些内存中的数据对象的,比如打印整数对象的值到屏幕上,或者把字符串对象内容写入文件。
变量的概念
人类语言里面,当我们提到一个人或物体, 是怎么说的?
比如说 聊天的时候,提到你的一个同学, 提到一支球队
对了,用他们的 名字。
比如: 王晓刚同学, 湖人队等等。
编程语言为了方便操作数据对象,也需要给对象起一个名字。
我们把Python语言中对象的名字, 称之为 变量名 , 有时也简称 变量。
所以Python中的变量,就是 对象的名字。
我们可以这样给数据对象起名字:
age = 43
weather = '`你好,今天天气真不错`'
变量名 和 数据对象 之间 用 等号 连接
其中
age
就是 数字对象 43
的名字,我们也可以说:变量 age
的值 是数字对象 43
weather
就是 字符串对象 你好,今天天气真不错
的名字,我们也可以说:变量 weather
的值 是 字符串对象 你好,今天天气真不错
定义了变量之后,我们写代码,需要用到 这 两个对象时,就可以用它们的名字: 变量名。
age = 43
weather = '你好,今天天气真不错'
print(age)
print(weather)
变量的命名规则
- 变量名不是随便取的,有一定的规则。
- 变量名可以包含 字母、数字和下划线。
- 变量名可以以字母或下划线打头,比如 var1 , 或者 _var 。
- 但不能以数字打头, 像 1var 这样是不行的。
- 变量名中不能包含空格。
- 变量名中可以包含下划线,像下面这样都是可以的
- Hello, var1, age2name, age_name
变量值的变化
对象的名字为什么叫变量呢?
因为它会变 :)
Python语言中,变量的值会可以产生变化
这里特别要注意的是,这种变化有如下两种情况
第一种:变量 重新指向了 新的对象
这种情况也被称之为 变量重新赋值,比如
age = 43
age = 'hello'
运行程序的时候,第一条语句执行完的时候,变量名age就是数字对象 43 的名字。
第二条语句执行完, 变量age就不是数字对象 43 的名字了,而是字符串对象 hello 的名字了。
当第二条语句执行完, 数字对象 43 就没有变量引用它了。
注意 没有被引用的对象,解释器会在随后某个时候从内存中清除掉。
一个对象可以有多个名字,比如
kid = '小明'
student = kid
prettyboy = kid
如果后面的代码将其中一个变量名进行重新赋值,比如
kid = '小周'
这只会改变kid 一个变量和其指向对象的 关系,并不会改变其他的变量名 student 和 prettyboy
所以,如果我们接下来执行下面的代码
print(kid)
print(student)
print(prettyboy)
运行结果就是
小周
小明
小明
第二种: 变量 指向的对象 本身发生了变化
这种情况,是当变量指向的对象是 可变的数据类型 ,比如:列表、字典,或者自定义的类实例对象。
info = {'name' :'黑羽白月', 'height':'180cm'}
info['height'] = '175cm'
print(info)
第二条语句就是让变量对应的字典对象的值 发生了变动
运行结果
{'name': '黑羽白月', 'height': '175cm'}
``