变量 和 注释

Python语言中,所有的 数据 都是 对象

每个整数、小数、字符串(还有我们后面要学的 字典、元组、列表、自定义类型对象等) 都是对象。

而且 所有的 数据的类型 也都是 对象

整数类型、小数类型、字符串类型(还有 字典类型、元组类型、列表类型、自定义类型) 都是对象。

在Python程序运行的时候,对象就是内存中的一段数据。

对象可以看成是所有 Python 数据的 总称、通称。

变量的概念

大家来思考一个问题:

我们人的语言里面,要提到一个人或物体, 是怎么说的?

比如说 聊天的时候,提到你的一个同学, 提到一支球队

对了,用他们的 名字

比如: 王晓刚同学, 湖人队等等。

假设,我们说话的时候,不允许使用 事物的名字, 我们的话就没法说了。

人类语言是这样,计算机语言也是一样,如果产生了数据对象,却没有名字,就像这样

43
'你好,今天天气真不错'

我们后面的代码,怎么去使用这个数字 43 和 字符串 '你好,今天天气真不错' 呢?

编程语言为了方便操作数据对象,也需要给对象起一个名字。

我们把Python语言中对象的名字, 称之为 变量名 , 有时也简称 变量

我们可以这样给数据对象起名字

age = 43
weather = '你好,今天天气真不错'

变量名 和 数据对象 之间 用 等号 连接

其中

age 就是 数字对象 43 的名字,我们也可以说:变量age的值是数字对象43

weather 就是 字符串对象 你好,今天天气真不错 的名字,我们也可以说:变量 weather 的值是 字符串对象 你好,今天天气真不错

以后,程序代码再需要使用到 这 两个对象,就可以用它们的名字: 变量名。

比如

age = 43
weather = '你好,今天天气真不错'
print(age)
print(weather)

代码执行的时候,解释器看到 变量名 就知道代表的就是对应的数据对象。

大家运行一下,可以发现,可以打印出变量所代表的 对象。



下面这行语句, 定义了 一个变量 age 值为 43,

age = 43

也可以称之为: 给变量 age 赋值 为43



变量的命名规则

变量名不是随便取的,有一定的规则。

  • 一般以字母开头,不能以数字开头, 像 1var 这样是不行的

  • 变量名中间可以使用 数字 或者 下划线 _ ,像下面这样都是可以的

    Hello, var1, age2name, age_name

    一个好的工程师,变量名不是乱取的,变量名通常可以表示其对于数据对象的含义。

    这样以后看这段代码,根据名字就能知道是什么意思

    比如 startTime, your_name, 这样的变量名,看了就知道是啥意思

    而像 a b c 这样的变量名就不好,因为看了不知道是啥意思。


注意Python中 变量名是大小写敏感的。

不可以 在定义的时候使用 startTime 作为变量名,而在使用的时候,用 starttime 。

下面的语句就不正确

startTime = '20180504'
print(starttime)

注意:定义变量名的时候,不能使用 关键字 作为 变量名

比如

as = 1997

as 是 Python的关键字,是Python语言中有特殊意义的名字, 不能用作变量名。


另外,不要 使用 Python 内置的 名字。

比如一些内置函数名: str、int、type 等

比如

type = 333   # 这行代码就把type这个内置函数名 重新赋值为数字对象 333 了
type(333)    # 相当于把数字对象当做函数对象进行调用,执行的时候就会出错了。



变量值的变化

对象的名字为什么叫变量呢?

因为它会变 :)

Python语言中,变量的值会可以产生变化

这里特别要注意的是,这种变化有如下两种情况



第一种:变量 重新指向了 新的对象

这种情况也被称之为 变量重新赋值,比如

age = 43
age = 'hello'

运行程序的时候,第一条语句执行完的时候,变量名age就是数字对象 43 的名字。

其对应关系如下图所示:

image


第二条语句执行完, 变量age就不是数字对象 43 的名字了,而是字符串对象 hello 的名字了。

其对应关系如下图所示:

image

当第二条语句执行完, 数字对象 43 就没有变量引用它了。

注意 没有被引用的对象,解释器会在随后某个时候从内存中清除掉。




一个对象可以有多个名字,比如

kid = '小明'
student = kid
prettyboy = kid

这样, 小明 这个字符串对象就有3个 变量名 kid、 student 和 prettyboy

这3个名字 指向同一个对象。

其对应关系如下图

image



如果后面的代码将其中一个变量名进行重新赋值,比如

kid = '小周'

这只会改变kid 一个变量和其指向对象的 关系,并不会改变其他的变量名 student 和 prettyboy

其对应关系如下图

image



所以,如果我们接下来执行下面的代码

print(kid)
print(student)
print(prettyboy)

运行结果就是

小周
小明
小明



这种写法

 var = var + 1 

叫做变量的自增赋值, 就是把变量原来的值 增加 1,这个结果对象再赋值为变量var

变量的自增赋值还有一个特殊的写法,如下

 var = 1
 var = var + 1 # 把var 的值加1 后,再赋给var, var 就变成了 2
 var += 1      # 等价于 var = var + 1 ,执行后var 就变成了 3

第二种: 变量 指向的对象 本身发生了变化

这种情况,是当变量指向的对象是可变的数据类型,比如:列表、字典,或者自定义的类实例对象。

这几种对象类型我们后面会学。

这里先给大家举个字典对象的例子

 info = {'name' :'黑羽白月', 'height':'180cm'}
 info['height'] = '175cm'
 print(info)

第二条语句就是让变量对应的字典对象的值 发生了变动



注释

虽然Python语言是一种容易理解和阅读的编程语言。

但是毕竟不是人类语言。

我们写的代码 为了以后 别人能读懂, 甚至以后自己能看懂, 就需要加入一些我们熟悉的人话,也就是人类语言,辅助理解。

这些辅助理解的人话,就是注释。

这些人话可以是任何一种语言,只要方便你看懂代码就行,中文、英文、法文都可以。

Python的注释以 # 开头,后面的内容都是注释

比如

# info 变量 记录 作者的信息,包括 名字,身高,体重
info = {'name' :'黑羽白月', 'height':'180cm'}

# 改变 作者的身高记录
info['height'] = '175cm'

print(info)  # 打印身高到屏幕上

怎么样,有了上面的注释,这些代码是不是更容易读懂了。

我们要注意的是,通常注释是不会对代码的执行有影响的(除了一些非常特殊的注释,比如代码开头的文件编码注释,以后会讲)

注释可以单独作为一行, 比如:

# info 变量 记录 作者的信息,包括 名字,身高,体重
info = {'name' :'黑羽白月', 'height':'180cm'}


也可以接在代码的后面,比如:

print(info)  # 打印身高到屏幕上


也可以连续有多行的注释,比如:

# info 变量 记录 作者的信息
# 包括 名字,身高,体重
info = {'name' :'黑羽白月', 'height':'180cm'}




上一页 下一页