2.1 变量与常量
2.1.1 变量
变量:可以改变的量。
- python中创建变量无需声明,赋的值什么类型,该变量就是什么类型;
- python中变量先赋值才能使用,赋值后python里面只会在内存创建一个值,该变量指向内存的这个值;
变量名命名规则:
- 数字、字母、下划线的任意组合( 前提是:数字不能放在名字开头 );
- 变量名不能是关键字(如int、char、str);
- 取名推荐使用驼峰体(myBookCount),且容易明白含义;
如图2-1所示,在python中,如果count、value变量都赋值50,那么这两个变量同时指向50,就意味着50被引用了两次,引用计数为2,使用del 可删除变量,每删除一个引用50 的变量,引用计数减1,引用计数为 0 ,会被python的垃圾回收机制定期自动回收释放空间。
count、value变量同时指向50,但两者相互独立。若对其任意一个变量重新赋值,都不影响另一个变量的值,例如count 重新赋值为52 ,则count会指向52,而value 依旧指向50。
***python程序中,对变量的赋值是改变该变量指向的空间,而C程序中,对变量的赋值是改变该变量指向空间的值。
图2-1
2.1.2 局部变量和全局变量
局部变量:在某个函数中第一次被创建并被赋值,只在该函数中有效,在该函数外使用则报错。
全局变量:在函数外创建并赋值,有效范围是在整个.py文件中从被创建开始到程序结束均有效,但函数内无法使用。
***(1) 若想在函数内部使用全局变量,使用关键字global 声明;
***(2) 若函数fun()中嵌套函数fun2(),fun2()要是用fun()中的局部变量temp,那么需要在fun2()中使用关键字nonlocal 指定上一级变量(python3中才有),如下程序:
# -*- coding: utf-8 -*-
count = 0 #全局变量,到程序执行结束都有效
value = 0 #全局变量,到程序执行结束都有效
def fun():
temp = 99 #局部变量
global value #函数内修改全局变量的值
value += 1
def fun2():
nonlocal temp #指定上一级变量在该函数中使用
temp += 1
2.1.3 常量
常量:不可以改变的量。
常量名命名规则:
- python 中,对常量并没有明确的定义方式;
- 通常默认用全大写字母表示常量(人为表示方式),实际还是变量;