变量和赋值语句

计算机程序通常用于处理各种类型的数据(即对象),不同的数据属于不同的数据类型,支持不同的运算操作。计算机程序处理的数据必须放入内存。机器语言和汇编语言直接通过内存地址访问这些数据,而高级语言则通过内存单元命名(即变量)来访问这些数据。

在Python 3中一切皆为对象。对象是某个类(类型)的实例,对象由唯一的id标识。对象可以通过标识符来引用,对象引用即指向具体对象实例的标识符,也称之为“变量”。

变量的声明和赋值

变量的声明和赋值用于把一个变量绑定到某个对象,其语法格式如下:

变量名 = 字面量或表达式

最简单的表达式是字面量,Python基于字面量的值创建一个对象,并绑定到变量;对于复杂的表达式, Python先求值表达式,然后返回表达式结果对象,并绑定到变量。

Python变量被访问之前必须初始化,即赋值(绑定到某个对象),否则会报错。

【实例】变量的声明和赋值示例。

x=0;y=0;z=0         #变量x、y和z均指向int对象0
str1 = "abc"        #变量strl指向值为"abc"的str型实例对象
aFloat              #变量aFloat未声明和定义(NameError:name'aFloat'is not defined)

链式赋值语句

链式赋值(chained assignment)的语句形式如下:

变量1=变量2=表达式
#**等价于**
变量2=表达式
变量1=变量2

链式赋值用于多个变量赋同一个值:

x = y = 123      #变量x和y均指向int对象123
x                #输出:123
y                #输出:123

复合赋值语句

运算符 描述 实例
+= 加法赋值运算符 a += b 等价于 a = a + b
-= 减法赋值运算符 a -= b 等价于 a = a - b
*= 乘法赋值运算符 a *= b 等价于 a = a * b
/= 除法赋值运算符 a /= b 等价于 a = a / b
//= 整除赋值运算符 a //= b 等价于 a = a // b
%= 取余赋值运算符 a %= b 等价于 a = a % b
**= 幂赋值运算符 a **= b 等价于 a = a ** b

删除变量

用户可以使用del语句删除不在使用的变量。

【实例】删除变量实例。

x = 1       #变量x指向int对象1
del x       #删除变量x
x           #变量x未声明和定义

序列解包赋值

Python支持将序列数据类型解包为对应相同个数的变量。

【实例】序列解包实例。

a,b = 1,2       #变量a指向int对象1,变量b指向int对象2
a               #输出:1
b               #输出:2

!!!注意:变量的个数必须与序列的元素个数一致,否则会产生错误。例如,对于语句“x,y=(1,2,3)”,由于右侧的元组序列包含3个元素,但是左侧只有两个变量,所以会产生错误。


如果只需要解包部分值,则可以采用特殊变量“_”。例如:

_, share, price, _=['ACME',50,102.11,(2018,8,21)]
share           #输出:50
price           #输出:102.11

【实例】使用序列解包实现变量交换。

a,b = (1,2)        #变量a指向int对象1,变量b指向int对象2
a,b = b,a          #变量a和b的值进行交换
a                  #输出:2
b                  #输出:1

说明:在Python语言中,使用“a,b=b,a”的语句方式可以实现两个变量的值的交换。

常量

Python语言不支持常量,即没有语法规则限制改变一个常量的值。Python语言使用约定,声明在程序运行过程中不会改变的变量为常量,通常使用全大写字母(可以使用下画线增加可阅读性)表示常量名。

【实例】常量示例。

TAX_RATE=0.17      #浮点类型常量TAX_RATE
PI = 3.14          #浮点类型常量PI
ECNU='华东师范大学'  #字符串常量ECNU